Standards
MOQOM builds on open standards and implements them itself rather than wrapping another stack.
| Layer | Standard | Body | How MOQOM uses it |
|---|---|---|---|
| Media transport | Media over QUIC Transport — draft-ietf-moq-transport-19 |
IETF | All 18 control messages of draft-19; object datagrams, subgroup streams, fetch with gap markers. Independent implementations in Rust (relay) and Swift (client). |
| Transport | QUIC — RFC 9000 | IETF | Native carrier for apps and relays. TLS 1.3 on every connection. |
| Browser transport | WebTransport over HTTP/3 | IETF / W3C | Carrier for browsers; shares the relay’s UDP port with raw QUIC. |
| Security | TLS 1.3 — RFC 8446 | IETF | Inherent in QUIC; always on. |
| Media encryption | SFrame — RFC 9605, and the MoQ secure-objects work | IETF | Payload-only E2EE, AES-256-GCM by default, so relay caching and prioritisation keep working. |
| Group keys (planned) | MLS — RFC 9420 | IETF | Designed for small E2EE rooms; sender keys for large rooms. Not yet built. |
| Authorisation | C4M (Common Access Token for MoQ) — draft-ietf-moq-c4m |
IETF | Token scopes follow C4M’s moqt claim (actions × namespace × track). Tokens are currently Ed25519-signed (EdDSA); the CBOR/COSE CAT encoding is the target. |
| Key format | JWK thumbprints — RFC 7638 | IETF | How device keys are identified. |
| Codecs | H.264, HEVC, Opus | ITU-T / ISO / IETF | Hardware encode/decode on Apple platforms. |
Draft tracking
Section titled “Draft tracking”MoQ Transport is still an Internet-Draft, so the wire format changes between drafts. MOQOM tracks
the current draft (19) and negotiates it explicitly (ALPN moqt-19). SDK and relay releases
state which draft they speak; mixed drafts do not interoperate.
Interoperability
Section titled “Interoperability”The Swift and Rust codecs were written separately and are tested against each other through a real relay. Interop testing against other independent MoQ implementations is a planned milestone.