โถ๏ธ 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
Rust Zoom Research Project
MVP of a teleconferencing system written in rust, both the backend and the UI.
Security Union LLC is not associated with Zoom Video Communications, we are big fans of their products!!
How to test?
Setup
Technically you could test this with a single computer, but it is more fun if you use 2+.
Steps
- Open chrome://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.
-
Start the servers on the computer that you intend to use as the server using
ACTIX_UI_BACKEND_URL=ws://<server-ip>:8080 make up
(requires docker). -
If your server computer is behind a firewall, make sure that TCP ports 80 and 8080 are open
-
Connect all computers to
http://<server-ip>/meeting/<username>/<meeting-id>
-
Make sure that you "allow" access to your mic and camera:
- Click connect on both browsers, and enjoy:
โถ๏ธ YouTube Channel
https://www.youtube.com/@securityunion
๐ Join our Discord Community
You can join our Discord Community, here is the invite link.
๐จโ๐ป Project Structure
Contains 3 sub-projects
- actix-api: actix web server
- yew-ui: Yew frontend
- types: json serializable structures used to communicate the frontend and backend.
Dockerized workflow
- Install docker
- 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
Legal Notice
ZOOM is a trademark of Zoom Video Communications, Inc.
Security Union LLC is not associated with Zoom Video Communications, but we are big fans of their product!!
This project was created to learn about video + audio streaming using only RUST (with some html + css).