Low latency
Independent streams prevent old media from delaying the live edge during congestion.
A composable protocol stack for real-time media and data at scale.
Media over QUIC (MoQ) is a family of protocols for live media and data. It uses independent QUIC streams so congestion on one part of a broadcast does not block newer content on another.
This project provides a production-oriented implementation in Rust and TypeScript. Its primary protocol stack is moq-lite for transport and hang for media, with compatibility for the IETF MoQ specifications.
| Goal | Start here |
|---|---|
| Run the local demo | Quick start |
| Publish, play, or convert media | Applications |
| Add MoQ to an application | Libraries |
| Operate a relay | moq-relay |
| Learn the architecture and tradeoffs | Concepts |
| Read the protocol specifications | Internet-Drafts |
The main implementations are Rust for native applications and TypeScript for browsers and JavaScript runtimes. C, Python, Kotlin, Swift, and Go bindings wrap the Rust core.