Skip to content

BanjoFox/videocall-rs

 
 

Repository files navigation

Live website

https://www.rustlemania.com/

News

https://www.reddit.com/r/rust/comments/14vwxfh/we_just_released_our_rust_webtransport/

▶️ YouTube Videos

Here's how we scaled it to support 1000 user per call https://youtu.be/LWwOSZJwEJI

The initial POC from 2022 https://www.youtube.com/watch?v=kZ9isFw1TQ8

video-call.rs

MVP of a teleconferencing system written in rust, both the backend and the UI.

How to test?

Setup

Technically you could test this with a single computer, but it is more fun if you use 2+.

Steps

  1. Open chrome:https://flags on all the computers that you want to use to test the tele-conferencing system, add the ip of the computer that you will use as the server to the Insecure origins treated as secure list.

Screen Shot 2022-10-30 at 10 00 43 PM

  1. Start the servers on the computer that you intend to use as the server using ACTIX_UI_BACKEND_URL=ws:https://<server-ip>:8080 make up (requires docker).

  2. If your server computer is behind a firewall, make sure that TCP ports 80 and 8080 are open

  3. Connect all computers to http:https://<server-ip>/meeting/<username>/<meeting-id>

  4. Make sure that you "allow" access to your mic and camera:

Screen Shot 2022-10-24 at 8 23 50 AM

  1. Click connect on both browsers, and enjoy:

Oct-24-2022 08-37-09

Compiling Cargo Workspace

Ubuntu

Some system dependencies are required for the workspace to compile

sudo apt-get update
sudo apt-get install libglib2.0-dev libgtk-3-dev libsoup2.4 libjavascriptcoregtk-4.0-dev libwebkit2gtk-4.0-dev

▶️ YouTube Channel

https://www.youtube.com/@securityunion

👉 Join our Discord Community

You can join our Discord Community, here is the invite link.

🫵 We need your haaalp!

We take pride on being community driven, there are many ways to collaborate, from filing an issue or, if you want to dive deeper, being part of our RFC Process

👨‍💻 Project Structure

Contains 3 sub-projects

  1. actix-api: actix web server
  2. yew-ui: Yew frontend
  3. types: json serializable structures used to communicate the frontend and backend.

Dockerized workflow

  1. Install docker
  2. Run one of the supported make commands
make test
make up
make down
make build

👤 Contributors ✨


Dario

Griffin Obeid

Victor Martínez

Leone

The Actix websocket implementation contains fragments from https://github.com/JasterV/chat-rooms-actix in particular the usage of an actor to orchestrate all sessions and rooms.

Show your support

Give a ⭐️ if this project helped you!

About

teleconference system written in rust

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 89.9%
  • CSS 5.5%
  • Smarty 2.1%
  • Shell 1.1%
  • Makefile 0.9%
  • Dockerfile 0.2%
  • Other 0.3%