• Stars
    star
    1,382
  • Rank 34,014 (Top 0.7 %)
  • Language
    Rust
  • License
    MIT License
  • Created about 2 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

teleconference system written in rust

โ–ถ๏ธ 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

rust

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

  1. 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.

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://<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://<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

โ–ถ๏ธ 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

  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!

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).

More Repositories

1

yew-actix-template

Awesome full-stack template using Yew and Rust
Rust
181
star
2

yew-webtransport

rust webtransport support for the yew framework
Rust
52
star
3

av1-streaming

AV1 streaming for Linux and Raspberry PI
Rust
51
star
4

code-muse-rs

generate apps using prompt engineering and the OpenAI API
Rust
41
star
5

rust-for-backend-development

SWITCH TO RUST AND STOP WASTING YOUR TIME WITH JAVASCRIPT RUNTIME EXCEPTIONS
Rust
35
star
6

webtransport.rs

webtransport full stack dev kit for rustaceans
Rust
28
star
7

going-fishing-with-my-raspberry-pi

23
star
8

yew-beyond-hello-world

yew rust tutorial
Rust
18
star
9

yew-websocket

Yew Rust / Wasm for using WebSockets
Rust
17
star
10

yew-weather

call rest api using rust + yew
Rust
15
star
11

pixel-rain-with-rust-and-rust

Pixel rain effect in rust
HTML
14
star
12

escape-the-creepers-with-rust

Ferris has to escape the creepers using a modified version of Dijkstra called A*
Rust
13
star
13

oculus-rc-car-control

Drive RC Car with Oculus
C++
12
star
14

rust-vs-java

Personal study to compare java and rust
Java
11
star
15

remote-shutter

With Remote Shutter one of your devices is the camera remote or camera monitor, and the other device would be set up wherever you would like to take a picture as the camera. Using the connected phone you can take pictures from up to 50 feet away.
Swift
10
star
16

embedded-rust-projects-to-inspire-you

Embedded Rust Projects
Rust
8
star
17

armore-server

Armore is the e2e encrypted location sharing app available for iOS and Android.
TypeScript
7
star
18

helm-website-boilerplate

JavaScript
5
star
19

leptos-webtransport

Rust
5
star
20

yew-recaptcha

Rust Yew bindings for the Google reCAPTCHA v3 API
Rust
3
star
21

rocket-sentry-logger

A Logger wrapper to integrate the Sentry SDK on a Rocket Server
Rust
3
star
22

esp32-metrics-rs

Rust
3
star
23

armore-ios

Armore is the e2e encrypted location sharing app available for iOS and Android.
Swift
3
star
24

advent-of-code-2023-rust

Rust
2
star
25

rust-sentry-demo

Integrate sentry to a Rocket App with the Sentry Rust SDK
Rust
2
star
26

webtransport-echo-server

Rust
1
star
27

vim-learning-together

Rust
1
star
28

smart-pointers

Rust
1
star