Rust workspace for MoQT draft-14.
moqt/: MoQT core implementationbindings/: bindings for non-Rust runtimesrelay/: QUIC + WebTransport relaybridges/: ONVIF and live ingest bridgesshared/: shared data structuresexamples/: browser and interop examplesspec/: protocol specifications
Enter the Nix development shell:
nix developInstall browser dependencies:
npm --prefix examples/browser ciRun these commands inside the Nix development shell:
make relay
make browser
make chrome
make live-ingest
make gst-srt-publish # SRT -> MoQT through the GStreamer moqtsink plugin
# For Linux users
make chrome:linuxmake browser builds the browser WASM bindings before starting Vite.
Run make ffmpeg-srt-bbb-local to send to localhost:9000 after starting a
local SRT receiver with make live-ingest or make gst-srt-publish.
Run each long-running command in a separate terminal.
Run make ffmpeg-srt-bbb-remote to send directly to the remote SRT receiver at
relay-1.moqt.research.skyway.io:9000; no local bridge or relay is needed.
Watch with Live Viewer using https://relay-1.moqt.research.skyway.io:443 and
namespace anon/live/test.
Both commands download the sample on first use and loop it continuously. See the live ingest guide for details.
Run Rust tests:
make test
make browser-e2e-mediamake browser-e2e-media installs the browser E2E prerequisites, starts the local
relay and Vite server, waits until both are ready, runs the Playwright media E2E
test, and then cleans up the child processes. The automated media E2E flow is
supported on Linux and macOS.
Run linters and formatters:
make lint
make format