├── .cargo └── config.toml ├── .dockerignore ├── .github ├── dependabot.yml └── workflows │ ├── ci.yml │ ├── docker.yml │ └── release.yml ├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── Dockerfile ├── LICENSE ├── Makefile ├── README.md ├── demo ├── .gitignore ├── Caddyfile ├── README.md ├── compose.yaml ├── index.html ├── package-lock.json ├── package.json ├── src │ ├── main.ts │ └── vite-env.d.ts ├── tsconfig.json └── vite.config.js ├── dist-workspace.toml ├── makefiles └── net.mk ├── proto └── sfu.proto ├── pulsebeam-agent ├── Cargo.toml ├── LICENSE ├── README.md └── src │ ├── agent.rs │ ├── lib.rs │ └── rt.rs ├── pulsebeam-cli ├── Cargo.toml ├── LICENSE ├── README.md └── src │ └── main.rs ├── pulsebeam-runtime ├── Cargo.toml ├── LICENSE ├── README.md ├── benches │ └── sync.rs └── src │ ├── actor.rs │ ├── collections │ ├── double_buffer.rs │ └── mod.rs │ ├── lib.rs │ ├── macros.rs │ ├── mailbox.rs │ ├── net.rs │ ├── prelude.rs │ ├── rand.rs │ ├── rt.rs │ ├── sync │ ├── mod.rs │ └── spmc.rs │ ├── system.rs │ └── tests │ ├── loom_spmc.rs │ └── mod.rs ├── pulsebeam-simulator ├── Cargo.toml ├── LICENSE ├── README.md └── src │ └── main.rs ├── pulsebeam ├── Cargo.toml ├── LICENSE ├── build.rs └── src │ ├── api.rs │ ├── controller.rs │ ├── entity.rs │ ├── gateway │ ├── actor.rs │ ├── demux.rs │ ├── ice.rs │ └── mod.rs │ ├── lib.rs │ ├── main.rs │ ├── message.rs │ ├── node.rs │ ├── participant │ ├── actor.rs │ ├── batcher.rs │ ├── bitrate.rs │ ├── core.rs │ ├── downstream │ │ ├── audio.rs │ │ ├── mod.rs │ │ └── video.rs │ ├── mod.rs │ └── upstream.rs │ ├── proto │ ├── mod.rs │ └── sfu.rs │ ├── room.rs │ ├── rtp │ ├── buffer.rs │ ├── mod.rs │ ├── monitor.rs │ ├── switcher.rs │ ├── sync.rs │ └── timeline.rs │ ├── shard.rs │ ├── test_utils.rs │ └── track.rs ├── rust-toolchain.toml └── scripts └── filter.py /.cargo/config.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/.cargo/config.toml -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/.dockerignore -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/.github/dependabot.yml -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.github/workflows/docker.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/.github/workflows/docker.yml -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/.github/workflows/release.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/.gitignore -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/Cargo.lock -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/Cargo.toml -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/README.md -------------------------------------------------------------------------------- /demo/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/demo/.gitignore -------------------------------------------------------------------------------- /demo/Caddyfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/demo/Caddyfile -------------------------------------------------------------------------------- /demo/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/demo/README.md -------------------------------------------------------------------------------- /demo/compose.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/demo/compose.yaml -------------------------------------------------------------------------------- /demo/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/demo/index.html -------------------------------------------------------------------------------- /demo/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/demo/package-lock.json -------------------------------------------------------------------------------- /demo/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/demo/package.json -------------------------------------------------------------------------------- /demo/src/main.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/demo/src/main.ts -------------------------------------------------------------------------------- /demo/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /demo/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/demo/tsconfig.json -------------------------------------------------------------------------------- /demo/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/demo/vite.config.js -------------------------------------------------------------------------------- /dist-workspace.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/dist-workspace.toml -------------------------------------------------------------------------------- /makefiles/net.mk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/makefiles/net.mk -------------------------------------------------------------------------------- /proto/sfu.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/proto/sfu.proto -------------------------------------------------------------------------------- /pulsebeam-agent/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam-agent/Cargo.toml -------------------------------------------------------------------------------- /pulsebeam-agent/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam-agent/LICENSE -------------------------------------------------------------------------------- /pulsebeam-agent/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam-agent/README.md -------------------------------------------------------------------------------- /pulsebeam-agent/src/agent.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam-agent/src/agent.rs -------------------------------------------------------------------------------- /pulsebeam-agent/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam-agent/src/lib.rs -------------------------------------------------------------------------------- /pulsebeam-agent/src/rt.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam-agent/src/rt.rs -------------------------------------------------------------------------------- /pulsebeam-cli/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam-cli/Cargo.toml -------------------------------------------------------------------------------- /pulsebeam-cli/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam-cli/LICENSE -------------------------------------------------------------------------------- /pulsebeam-cli/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam-cli/README.md -------------------------------------------------------------------------------- /pulsebeam-cli/src/main.rs: -------------------------------------------------------------------------------- 1 | fn main() { 2 | println!("Hello, world!"); 3 | } 4 | -------------------------------------------------------------------------------- /pulsebeam-runtime/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam-runtime/Cargo.toml -------------------------------------------------------------------------------- /pulsebeam-runtime/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam-runtime/LICENSE -------------------------------------------------------------------------------- /pulsebeam-runtime/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam-runtime/README.md -------------------------------------------------------------------------------- /pulsebeam-runtime/benches/sync.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam-runtime/benches/sync.rs -------------------------------------------------------------------------------- /pulsebeam-runtime/src/actor.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam-runtime/src/actor.rs -------------------------------------------------------------------------------- /pulsebeam-runtime/src/collections/double_buffer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam-runtime/src/collections/double_buffer.rs -------------------------------------------------------------------------------- /pulsebeam-runtime/src/collections/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod double_buffer; 2 | -------------------------------------------------------------------------------- /pulsebeam-runtime/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam-runtime/src/lib.rs -------------------------------------------------------------------------------- /pulsebeam-runtime/src/macros.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam-runtime/src/macros.rs -------------------------------------------------------------------------------- /pulsebeam-runtime/src/mailbox.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam-runtime/src/mailbox.rs -------------------------------------------------------------------------------- /pulsebeam-runtime/src/net.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam-runtime/src/net.rs -------------------------------------------------------------------------------- /pulsebeam-runtime/src/prelude.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam-runtime/src/prelude.rs -------------------------------------------------------------------------------- /pulsebeam-runtime/src/rand.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam-runtime/src/rand.rs -------------------------------------------------------------------------------- /pulsebeam-runtime/src/rt.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam-runtime/src/rt.rs -------------------------------------------------------------------------------- /pulsebeam-runtime/src/sync/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam-runtime/src/sync/mod.rs -------------------------------------------------------------------------------- /pulsebeam-runtime/src/sync/spmc.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam-runtime/src/sync/spmc.rs -------------------------------------------------------------------------------- /pulsebeam-runtime/src/system.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam-runtime/src/system.rs -------------------------------------------------------------------------------- /pulsebeam-runtime/src/tests/loom_spmc.rs: -------------------------------------------------------------------------------- 1 | // TODO: figure out how to setup loom tests properly here 2 | -------------------------------------------------------------------------------- /pulsebeam-runtime/src/tests/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam-runtime/src/tests/mod.rs -------------------------------------------------------------------------------- /pulsebeam-simulator/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam-simulator/Cargo.toml -------------------------------------------------------------------------------- /pulsebeam-simulator/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam-simulator/LICENSE -------------------------------------------------------------------------------- /pulsebeam-simulator/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam-simulator/README.md -------------------------------------------------------------------------------- /pulsebeam-simulator/src/main.rs: -------------------------------------------------------------------------------- 1 | fn main() { 2 | println!("Hello, world!"); 3 | } 4 | -------------------------------------------------------------------------------- /pulsebeam/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/Cargo.toml -------------------------------------------------------------------------------- /pulsebeam/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/LICENSE -------------------------------------------------------------------------------- /pulsebeam/build.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/build.rs -------------------------------------------------------------------------------- /pulsebeam/src/api.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/src/api.rs -------------------------------------------------------------------------------- /pulsebeam/src/controller.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/src/controller.rs -------------------------------------------------------------------------------- /pulsebeam/src/entity.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/src/entity.rs -------------------------------------------------------------------------------- /pulsebeam/src/gateway/actor.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/src/gateway/actor.rs -------------------------------------------------------------------------------- /pulsebeam/src/gateway/demux.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/src/gateway/demux.rs -------------------------------------------------------------------------------- /pulsebeam/src/gateway/ice.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/src/gateway/ice.rs -------------------------------------------------------------------------------- /pulsebeam/src/gateway/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/src/gateway/mod.rs -------------------------------------------------------------------------------- /pulsebeam/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/src/lib.rs -------------------------------------------------------------------------------- /pulsebeam/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/src/main.rs -------------------------------------------------------------------------------- /pulsebeam/src/message.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/src/message.rs -------------------------------------------------------------------------------- /pulsebeam/src/node.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/src/node.rs -------------------------------------------------------------------------------- /pulsebeam/src/participant/actor.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/src/participant/actor.rs -------------------------------------------------------------------------------- /pulsebeam/src/participant/batcher.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/src/participant/batcher.rs -------------------------------------------------------------------------------- /pulsebeam/src/participant/bitrate.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/src/participant/bitrate.rs -------------------------------------------------------------------------------- /pulsebeam/src/participant/core.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/src/participant/core.rs -------------------------------------------------------------------------------- /pulsebeam/src/participant/downstream/audio.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/src/participant/downstream/audio.rs -------------------------------------------------------------------------------- /pulsebeam/src/participant/downstream/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/src/participant/downstream/mod.rs -------------------------------------------------------------------------------- /pulsebeam/src/participant/downstream/video.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/src/participant/downstream/video.rs -------------------------------------------------------------------------------- /pulsebeam/src/participant/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/src/participant/mod.rs -------------------------------------------------------------------------------- /pulsebeam/src/participant/upstream.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/src/participant/upstream.rs -------------------------------------------------------------------------------- /pulsebeam/src/proto/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod sfu; 2 | -------------------------------------------------------------------------------- /pulsebeam/src/proto/sfu.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/src/proto/sfu.rs -------------------------------------------------------------------------------- /pulsebeam/src/room.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/src/room.rs -------------------------------------------------------------------------------- /pulsebeam/src/rtp/buffer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/src/rtp/buffer.rs -------------------------------------------------------------------------------- /pulsebeam/src/rtp/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/src/rtp/mod.rs -------------------------------------------------------------------------------- /pulsebeam/src/rtp/monitor.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/src/rtp/monitor.rs -------------------------------------------------------------------------------- /pulsebeam/src/rtp/switcher.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/src/rtp/switcher.rs -------------------------------------------------------------------------------- /pulsebeam/src/rtp/sync.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/src/rtp/sync.rs -------------------------------------------------------------------------------- /pulsebeam/src/rtp/timeline.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/src/rtp/timeline.rs -------------------------------------------------------------------------------- /pulsebeam/src/shard.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/src/shard.rs -------------------------------------------------------------------------------- /pulsebeam/src/test_utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/src/test_utils.rs -------------------------------------------------------------------------------- /pulsebeam/src/track.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/pulsebeam/src/track.rs -------------------------------------------------------------------------------- /rust-toolchain.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/rust-toolchain.toml -------------------------------------------------------------------------------- /scripts/filter.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PulseBeamDev/pulsebeam/HEAD/scripts/filter.py --------------------------------------------------------------------------------