Low latency
Independent QUIC streams let congestion drop old media instead of delaying new media, while tiny single-frame groups can use datagrams.
Real-time latency at CDN scale, for video, audio, and any live data.
Media over QUIC (MoQ) is a live media protocol built on QUIC. A publisher sends a broadcast made of tracks; each track is a series of groups (a group of pictures, a second of audio, one JSON snapshot). Most groups use independent QUIC streams; eligible single-frame groups can use unreliable datagrams. Relays forward and cache the stream-delivered groups without parsing them, so the same infrastructure carries video, audio, and arbitrary data.
This project is the reference implementation: a Rust relay and toolchain, a TypeScript browser stack, and bindings for C, Python, Kotlin, Swift, Go, and Dart. It speaks moq-lite, a simple profile that is forward-compatible with the IETF moq-transport drafts.
| Use case | Reach for |
|---|---|
| Twitch-style live streaming | Ingest with OBS, RTMP or SRT, distribute with moq-relay, watch with <moq-watch>, and keep legacy players via the HLS gateway. |
| Conferencing | <moq-publish> and <moq-watch> in the browser, one broadcast per participant, plus the WebRTC gateway for WHIP/WHEP clients. |
| Voice and video AI | Server-side media in Rust or Python with hardware codecs, faster-than-real-time playback in the browser. See MoQ for AI. |
| Real-time data | Chat, game state, telemetry, and control channels over the same relays with moq-net or @moq/net. |
| Interactive streams | Media down, input up. MoQ Boy is a crowd-controlled Game Boy built this way. |
| Native and mobile apps | One Rust core behind Swift, Kotlin, Go, Dart, and C bindings. |
| Goal | Start here |
|---|---|
| Run the demo locally | Quick start |
| Install the relay or CLI | Install |
| Publish, play, or convert media | Applications |
| Add MoQ to an app | Libraries |
| Operate a relay | moq-relay |
| Understand the design | Concepts |
| Read the specs | Internet-Drafts |
| Teach your coding agent | Agent setup |