├── .github └── workflows │ └── rust.yml ├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── LICENSE ├── README.md ├── app └── jrpc2-server │ ├── Cargo.toml │ └── src │ ├── config.toml │ ├── lib.rs │ ├── main.rs │ └── server │ ├── mod.rs │ └── signal.rs ├── rsfu ├── Cargo.toml ├── README.md └── src │ ├── buffer │ ├── bucket.rs │ ├── bucket_test.rs │ ├── buffer.rs │ ├── buffer_io.rs │ ├── errors.rs │ ├── factory.rs │ ├── factory_test.rs │ ├── helpers.rs │ ├── mod.rs │ ├── nack.rs │ ├── nack_test.rs │ └── rtcpreader.rs │ ├── lib.rs │ ├── middlewares │ ├── middlewares.rs │ └── mod.rs │ ├── relay │ ├── errors.rs │ ├── mod.rs │ └── relay.rs │ ├── sfu │ ├── audio_observer.rs │ ├── data_channel.rs │ ├── down_track.rs │ ├── down_track_internal.rs │ ├── errors.rs │ ├── helpers.rs │ ├── media_engine.rs │ ├── mod.rs │ ├── peer.rs │ ├── publisher.rs │ ├── receiver.rs │ ├── relay_peer.rs │ ├── router.rs │ ├── sequencer.rs │ ├── session.rs │ ├── sfu.rs │ ├── simulcast.rs │ ├── subscriber.rs │ └── turn.rs │ ├── stats │ ├── mod.rs │ └── stream.rs │ └── twcc │ ├── errors.rs │ ├── mod.rs │ ├── twcc.rs │ └── twcc_test.rs └── third-party └── echotest-jsonrpc ├── README.md ├── docker-compose.yaml └── index.html /.github/workflows/rust.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/.github/workflows/rust.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/.gitignore -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/Cargo.lock -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [workspace] 2 | members = ["rsfu", "app/jrpc2-server"] 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/README.md -------------------------------------------------------------------------------- /app/jrpc2-server/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/app/jrpc2-server/Cargo.toml -------------------------------------------------------------------------------- /app/jrpc2-server/src/config.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/app/jrpc2-server/src/config.toml -------------------------------------------------------------------------------- /app/jrpc2-server/src/lib.rs: -------------------------------------------------------------------------------- 1 | pub mod server; 2 | -------------------------------------------------------------------------------- /app/jrpc2-server/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/app/jrpc2-server/src/main.rs -------------------------------------------------------------------------------- /app/jrpc2-server/src/server/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod signal; 2 | -------------------------------------------------------------------------------- /app/jrpc2-server/src/server/signal.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/app/jrpc2-server/src/server/signal.rs -------------------------------------------------------------------------------- /rsfu/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/Cargo.toml -------------------------------------------------------------------------------- /rsfu/README.md: -------------------------------------------------------------------------------- 1 | # rsfu 2 | 3 | A webrtc sfu library. -------------------------------------------------------------------------------- /rsfu/src/buffer/bucket.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/buffer/bucket.rs -------------------------------------------------------------------------------- /rsfu/src/buffer/bucket_test.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/buffer/bucket_test.rs -------------------------------------------------------------------------------- /rsfu/src/buffer/buffer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/buffer/buffer.rs -------------------------------------------------------------------------------- /rsfu/src/buffer/buffer_io.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/buffer/buffer_io.rs -------------------------------------------------------------------------------- /rsfu/src/buffer/errors.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/buffer/errors.rs -------------------------------------------------------------------------------- /rsfu/src/buffer/factory.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/buffer/factory.rs -------------------------------------------------------------------------------- /rsfu/src/buffer/factory_test.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/buffer/factory_test.rs -------------------------------------------------------------------------------- /rsfu/src/buffer/helpers.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/buffer/helpers.rs -------------------------------------------------------------------------------- /rsfu/src/buffer/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/buffer/mod.rs -------------------------------------------------------------------------------- /rsfu/src/buffer/nack.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/buffer/nack.rs -------------------------------------------------------------------------------- /rsfu/src/buffer/nack_test.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/buffer/nack_test.rs -------------------------------------------------------------------------------- /rsfu/src/buffer/rtcpreader.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/buffer/rtcpreader.rs -------------------------------------------------------------------------------- /rsfu/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/lib.rs -------------------------------------------------------------------------------- /rsfu/src/middlewares/middlewares.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/middlewares/middlewares.rs -------------------------------------------------------------------------------- /rsfu/src/middlewares/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod middlewares; 2 | -------------------------------------------------------------------------------- /rsfu/src/relay/errors.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/relay/errors.rs -------------------------------------------------------------------------------- /rsfu/src/relay/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/relay/mod.rs -------------------------------------------------------------------------------- /rsfu/src/relay/relay.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/relay/relay.rs -------------------------------------------------------------------------------- /rsfu/src/sfu/audio_observer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/sfu/audio_observer.rs -------------------------------------------------------------------------------- /rsfu/src/sfu/data_channel.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/sfu/data_channel.rs -------------------------------------------------------------------------------- /rsfu/src/sfu/down_track.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/sfu/down_track.rs -------------------------------------------------------------------------------- /rsfu/src/sfu/down_track_internal.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/sfu/down_track_internal.rs -------------------------------------------------------------------------------- /rsfu/src/sfu/errors.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/sfu/errors.rs -------------------------------------------------------------------------------- /rsfu/src/sfu/helpers.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/sfu/helpers.rs -------------------------------------------------------------------------------- /rsfu/src/sfu/media_engine.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/sfu/media_engine.rs -------------------------------------------------------------------------------- /rsfu/src/sfu/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/sfu/mod.rs -------------------------------------------------------------------------------- /rsfu/src/sfu/peer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/sfu/peer.rs -------------------------------------------------------------------------------- /rsfu/src/sfu/publisher.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/sfu/publisher.rs -------------------------------------------------------------------------------- /rsfu/src/sfu/receiver.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/sfu/receiver.rs -------------------------------------------------------------------------------- /rsfu/src/sfu/relay_peer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/sfu/relay_peer.rs -------------------------------------------------------------------------------- /rsfu/src/sfu/router.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/sfu/router.rs -------------------------------------------------------------------------------- /rsfu/src/sfu/sequencer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/sfu/sequencer.rs -------------------------------------------------------------------------------- /rsfu/src/sfu/session.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/sfu/session.rs -------------------------------------------------------------------------------- /rsfu/src/sfu/sfu.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/sfu/sfu.rs -------------------------------------------------------------------------------- /rsfu/src/sfu/simulcast.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/sfu/simulcast.rs -------------------------------------------------------------------------------- /rsfu/src/sfu/subscriber.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/sfu/subscriber.rs -------------------------------------------------------------------------------- /rsfu/src/sfu/turn.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/sfu/turn.rs -------------------------------------------------------------------------------- /rsfu/src/stats/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod stream; 2 | -------------------------------------------------------------------------------- /rsfu/src/stats/stream.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/stats/stream.rs -------------------------------------------------------------------------------- /rsfu/src/twcc/errors.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/twcc/errors.rs -------------------------------------------------------------------------------- /rsfu/src/twcc/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/twcc/mod.rs -------------------------------------------------------------------------------- /rsfu/src/twcc/twcc.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/twcc/twcc.rs -------------------------------------------------------------------------------- /rsfu/src/twcc/twcc_test.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/rsfu/src/twcc/twcc_test.rs -------------------------------------------------------------------------------- /third-party/echotest-jsonrpc/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/third-party/echotest-jsonrpc/README.md -------------------------------------------------------------------------------- /third-party/echotest-jsonrpc/docker-compose.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/third-party/echotest-jsonrpc/docker-compose.yaml -------------------------------------------------------------------------------- /third-party/echotest-jsonrpc/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harlanc/rsfu/HEAD/third-party/echotest-jsonrpc/index.html --------------------------------------------------------------------------------