Website: openmoq.org GitHub: openmoq
Overview
An industry consortium advancing MOQ-based technology through high-performance, open-source software. Mission: deliver practical implementations that enable the next generation of media transport.
Members
Charter Members
- Akamai
- CDN77
- Cisco
- RED5
- Synamedia
- YouTube
Standard Members
- Ateme
- Bitmovin
- Nano Cosmos
- Qualabs
- Vindral
- Wowza
Academic Members
- University of Klagenfurt
- Özyeğin University
Repositories
openmoq/moxygen (moqx)
- GitHub: openmoq/moxygen
- Fork of Meta’s moxygen relay, serving as the buffer repo for the planned moqx server/relay
- C++
- Version set: drafts 16 + 18 (draft-14 dropped, late Sep 2026). The relay config now rejects
moqt_versions: 14and the published image defaults to[16, 18]. The interop client offers onlymoqt-18, moqt-16(moqx #770, merged Sep-28), and the runner registration change is runner #131 (OPEN, approved). Before that it was a draft-14/16 “floor relay” (see Recent Highlights). The codebase also carries a qmux listener. See Interop.
openmoq/moq-relay-test
- GitHub: openmoq/moq-relay-test
- Interop testing tool for MOQT relays
- Updated: 2026-03-20
openmoq/moqxr (formerly mondain/moqxr)
- GitHub: openmoq/moqxr (
mondain/moqxrredirects here) - Origin Publisher, Contribution, and Ingest CLI for OpenMOQ (C++), maintained by Paul Gregoire (mondain)
- draft-18 support shipped May 16–18, 2026 — the third open-source implementation to ship draft-18, after moq and imquic
- Capabilities added since: a live-object publish API, an optional MSF media timeline track, an SRT MPEG-TS ingest path (fMP4 repackaging → MoQ objects), and a prebuilt static-library SDK (picoquic/picotls bundled) consumed by mondain/moq2ts
- Latest release: v0.4.0 (Sep 28, 2026). It adds draft-21 as a selectable MOQT draft (#45, +11,954/−231), with fixes for draft-17+
LARGEST_OBJECT, the draft-17/18 AbsoluteRange End Group delta and draft-21 filter-end behaviour, and shares draft-21 wire vectors with red5-moq-relay and moq-playa. It follows a fast v0.3.x series (v0.3.23–v0.3.27, Sep 5–25). Early history: v0.2.1 (Apr 17, draft-16 interop fixes); v0.2.0 (Apr 15) added a draft-16 SUBSCRIBE KVP parser, dropped the WebTransport subprotocol for draft-14, and made control-message handling non-blocking
openmoq/moq5 — the C protocol core
- GitHub: openmoq/moq5 — C, Apache-2.0, created 2026-06-23
- Registered in the interop-runner under organization “Red5 Pro” as the
moq5client endpoint, currently running at-target draft-18; supports draft-16 and draft-18, selected by transport negotiation and never auto-detected - Sans-I/O, zero-dependency C protocol core with an explicit allocator and a shared transport bridge — designed to be embedded rather than run standalone
- A media service tier on top (
moq_endpoint_t,moq_media_receiver_t,moq_media_sender_t) targets FFmpeg / VLC / GStreamer / OBS integration - Deterministic FoundationDB-style seed-replayable simulation testing (
moq-sim/ SimPair) — an unusually rigorous test approach for this ecosystem - Companion: rwl4/gst-moq — a minimal C GStreamer plugin over MOQ5
openmoq/moq-playa — Red5’s TypeScript player suite
- GitHub: openmoq/moq-playa — TypeScript, Apache-2.0, created 2026-06-06
- Correction: this wiki previously recorded moq-playa as “planned / not yet publicly available (as of 2026-04-10)“. It has been public and shipping since June 2026.
- A full-stack TypeScript MoQT reference implementation published as two npm scopes, all at v0.5.7 (2026-08-18):
@moqt/transport(sans-I/O core),@moqt/loc,@moqt/msf,@moqt/playback(jitter buffer, A/V sync),@moqt/webtransport,@moqt/browser,@moqt/player, plus a batteries-included@playa/player - WebCodecs playback path with MSE/CMAF fallback and ABR
- npm scope migration (Oct-1, #21, +761/−582):
@moqt/*→@openmoq/*, and@playa/player→@openmoq/playa. Nothing is published under@openmoqon npm yet, so the v0.5.x@moqt/*packages remain the installable ones. - Registered as a draft-18 interop client in the interop-runner as
moq-playa(runner #119 merged Sep-2, at the draft-18 hackathon) — runs over WebTransport, negotiating draft-18 via the WT subprotocol; CI publishesghcr.io/openmoq/moq-playa-interop-client - LOCMAF playback shipped (merged to
main2026-09-19 08:29 UTC; final size +9,801/−67 across 242 files) — PR #15 “play LOCMAF tracks (draft-einarsson-moq-locmaf-01)” (Paul Gregoire, opened 2026-09-14, second revision Sep-17, merged Sep-19) adds a standalone@moqt/locmafpackage — codec, deserializer and encoder, canonical CMAF-chunk reconstruction incl.saiz/saio/senc— and routes LOCMAF tracks down either the existing MSE/CMAF path or a WebCodecs frame path (locmafDecoding: 'mse' | 'frame'). It is the first implementation anywhere to exercise the draft’s §16 frame interface and §14 event-only tracks (emsgv0/v1), and it validates against Eyevinn/locmaf’s golden vectors vendored and pinned by SHA-256 (all 38 objects reconstruct and re-encode byte-exact). CENC/EME playback is the declared gap. Red5’s own relay was exercised end-to-end in TRANSPARENT and FULL modes (the latter reconstructing and validating every object). This makes moq-playa the second non-Eyevinn LOCMAF implementation after shaka-player, and the most complete reading of the draft so far. Post-merge follow-ups (Sep 20–21): LOC-04 support, LOCMAF raw-chunk sample validation, and a player fix keeping request IDs separate from track aliases. Sep-28: generic EME/DRM in the MSE adapter (Widevine by default, any key system viaDrmConfig; PR #18) and a catalog-subscribe retry onDOES_NOT_EXISTfor viewers who arrive before the publisher (#19). draft-21 (subscriber, player and publisher;moqt-21, no Joining FETCH) was opened as PR #20 (+2,603/−265) and played end to end against red5-moq-relay, a repo not visible publicly. On Oct-1 #20 was closed unmerged: rwl4 moved its commits plus his own fixes onto a long-livedfeature/draft-21branch (15 commits ahead ofmain), so draft-21 is not onmainyet.
mondain/moqzr
- GitHub: mondain/moqzr — Zig + Electrobun MoQ player (MIT), Paul Gregoire
Goals
- Distribute development costs across organizations
- Accelerate MOQ through collective expertise
- Ensure interoperability via standardized implementations
- Lower market barriers for new use cases beyond media (financial feeds, gaming, IoT, AR/VR)
Development Status
Core infrastructure development is ongoing. The consortium has completed industry alignment, established a technical roadmap, and finalized legal structure and governance.
Recent Highlights
Day-by-day PR/issue history lives in the wiki log; this section keeps only durable milestones.
- Alan Frindell’s OpenMOQ consulting arrangement disclosed (July 20, 2026) — in an IETF “Change in employment disclosure” to the MoQ list, Alan Frindell noted he has moved from full-time to part-time at Meta (Meta still sponsors his IETF participation, which remains on Meta’s behalf), and in his non-Meta hours now runs a consulting business contracted with OpenMOQ to build open-source software — specifically the
moqxrelay. This formalizes the sponsorship behind the moqx work he has driven on the fork, and gives OpenMOQ a named, funded relay project. - Multi-threaded relay scaling — Alan Frindell (afrind, Meta) drove a sustained effort (late May–June) making moqx deployable with
threads > 1: a cBPF reuseport worker-steering filter,recvmmsgbatch receives, per-thread local forwarders, and arelay_threadconfig knob, plus follow-on lock-free-mode relay-correctness hardening. - CAT-token authentication — Paul Mondain’s PR #264 (merged June 3, the largest single moqx merge) added opt-in CAT-style token auth/authorization for MOQT relay services, verifying signed CWT/HMAC
exp/moqt/moqt-revalclaims; afrind then refactored it into per-session auth filters, and a CAT4MOQ / C4M issuer utility followed. - Floor-relay version policy — moxygen (moqx) deliberately defaults to advertising draft 14/16 and excludes draft-18 (June 16–17), staying a stable floor relay while
moq-rs-draft-18carries the at-target draft-18 interop cells. A known hazard (Issue #472) is that the default version order can cap negotiation at 16 even when 18 is mutually supported. Superseded late September 2026: moqx dropped draft-14 and now defaults to[16, 18]with 18 preferred (#770). The nightly shows it as a persistent moq-rs-draft-14 → moqx failure from Sep-29, and it is the first implementation to leave the runner’s draft-14 band on purpose. - London hackathon (June 9) — afrind brought the relay up as a public draft-18 endpoint and shipped
moq_decode.py, a standalone draft-18 wire decoder for interop debugging, entering London with CAT-token auth, auto-regression CI, and the multi-thread stack in place. - draft-18 codebase capabilities — although the default relay stays on 14/16, the codebase gained draft-18 message handling (akash-a-n’s SUBSCRIBE_TRACKS port, PR #411) and a qmux listener (PR #420), the latter landing the same day moq added its own qmux listener.
- Observability + deployment hardening (July) — afrind added a self-contained live Prometheus metrics dashboard and perf-test client metrics; gmarzot added in-memory PKCS#12 TLS bundle support (PR #460), a no-sudo onboarding quickstart, and native Debian/Ubuntu build support.
- Contributor footprint — Tim Evens (Cisco) joined on the build system (CPM dependency migration, Debian + macOS toolchain fixes), widening Cisco’s MoQ footprint; most moqx churn is afrind’s, with gmarzot, akash-a-n, peterchave, and mondain also contributing. Meta’s moxygen upstream stayed comparatively sparse as this work landed on the fork.
- Governance incident resolved — an April OpenMOQ dispute involving Mike English and Giovanni Marzot (a “suspicious AI PR” on the interop runner) was resolved May 18, with Marzot returning as an active contributor.
Interop
- openmoq/moxygen (moqx) in the interop-runner since Apr 2026 — strong results as a relay: moq-dev-js ↔ moqx 6/6, moq-rs-draft-16 ↔ moqx 5–6/6, moq-rs ↔ moqx all pass.
- moxygen relay endpoint at
fb.mvfst.net:9448on versions 14/16/18 — the first publicly-announced draft-18 relay endpoint (brought up June 9); see interop-endpoints. - First cross-impl draft-18 interop attempt: mondain/moqxr ↔ imquic (May 19–20) surfaced a bidi-vs-uni SETUP-stream divergence, fixed within ~10 hours.
Related
- moxygen - Meta’s original relay that openmoq/moxygen forks
- interop-runner - Interop testing (moq-relay-test is a related tool)
- will-law - Akamai, charter member
- suhas-nandakumar - Cisco, charter member