All Projects → codec-abc → Yew-WebRTC-Chat

codec-abc / Yew-WebRTC-Chat

Licence: other
A simple WebRTC chat made with Yew

Programming Languages

rust
11053 projects
CSS
56736 projects
HTML
75241 projects

Projects that are alternatives of or similar to Yew-WebRTC-Chat

yew form
Components to simplify handling forms with Yew
Stars: ✭ 83 (-25.89%)
Mutual labels:  yew
facade
Facade Framework - autogenerated embedded live dashboards for Rust apps
Stars: ✭ 95 (-15.18%)
Mutual labels:  yew
yew-router
Router extension to yew
Stars: ✭ 27 (-75.89%)
Mutual labels:  yew
wasi-worker
WASM / WASI interface for browser service workers
Stars: ✭ 31 (-72.32%)
Mutual labels:  yew
patternfly-yew
PatternFly components for Yew
Stars: ✭ 51 (-54.46%)
Mutual labels:  yew
ybc
A Yew component library based on the Bulma CSS framework.
Stars: ✭ 131 (+16.96%)
Mutual labels:  yew
rust-electron-demo
rust electron demo using yew
Stars: ✭ 15 (-86.61%)
Mutual labels:  yew
rusty-connect4
A full-stack application written completely in Rust.
Stars: ✭ 30 (-73.21%)
Mutual labels:  yew
fullstack-rust
Reference implementation of a full-stack Rust application
Stars: ✭ 39 (-65.18%)
Mutual labels:  yew
rocket-yew-starter-pack
Example boilerplate for websites in pure Rust
Stars: ✭ 77 (-31.25%)
Mutual labels:  yew
material-yew
Yew wrapper for Material Web Components
Stars: ✭ 116 (+3.57%)
Mutual labels:  yew
bounce
The uncomplicated Yew State management library
Stars: ✭ 43 (-61.61%)
Mutual labels:  yew
lifeee-rs
An implementation of the Game of Life
Stars: ✭ 53 (-52.68%)
Mutual labels:  yew
stylist-rs
A CSS-in-Rust styling solution for WebAssembly Applications
Stars: ✭ 124 (+10.71%)
Mutual labels:  yew
zzhack
🦀️ WASM webapp template written in Rust
Stars: ✭ 170 (+51.79%)
Mutual labels:  yew
FullstackRustDemo
Novelty website + bucket questions implementation.
Stars: ✭ 40 (-64.29%)
Mutual labels:  yew
surfer
The Blog built on pure Rust stack. Backend for graphql services, and frontend for web application.
Stars: ✭ 35 (-68.75%)
Mutual labels:  yew
paudle
Wordle in Rust
Stars: ✭ 40 (-64.29%)
Mutual labels:  yew
reacty yew
Generate Yew components from React components via Typescript type definitions
Stars: ✭ 46 (-58.93%)
Mutual labels:  yew
portfolio
My Portfolio
Stars: ✭ 17 (-84.82%)
Mutual labels:  yew

A Yew WebRTC Chat

About

This project showcase a simple HTML chat using WebRTC and programmed in Rust and compiled to WASM. Live Demo

After reading this wonderful post by the Cheerp team I wanted to see if the same can be done with "pure" Rust using WASM.

Since doing a game from scratch was too complicated as a first step I aimed to just play along with Rust, HTML (using Yew) and WebRTC by doing a chat application. 3D and WebGL will come another time.

It turns out that it is not very difficult to get something working as you can see below:

demo

Notes

If you try to run locally prefer testing with Chrome locally because I encountered issues with Firefox. Also, be wary that some extensions might block WebRTC connections. Also, if you are testing with a friend it might not work as I am using only a STUN server. From the tests I made, I found out that the connections are often blocked on corporate networks and using a TURN server would solve the problem. But unlike STUN server there aren't free TURN servers. Finally, the error handling is not totally done yet as I don't know how I actually handle errors (and also what the WebRTC API allows me to do). If you are stuck reload the page on both side and try again.

Build and Run

To build this project you need to:

  1. Install wasm-pack with cargo install wasm-pack
  2. Install http-server cargo install http-server

To run it once build you need to type

  1. Compile code with wasm-pack build --target web --no-typescript --out-dir ./static/pkg
  2. Run web server in the static dir with http-server -p 8080 (Alternatively you can use any static file server like python3 -m http.server)

Special thanks

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].