Current state of cross-implementation interoperability testing.
Latest Interop Results
Draft-17
- moq-dev ←> lorenzo-miniero’s imquic: First v17 interop working (2026-04-01). Rust publisher, JS subscriber. “Still a few things to iron out.”
- Daiki Matsui’s impl ←> moq-dev (
cdn.moq.dev): Working (2026-03-23). Browser pub → relay → browser sub.
Draft-16
- moq-rs: PR #131 branch
- moxygen: Supported
- libquicr / quicr-go: Draft-16 compatible
- Cloudflare interop relay:
draft-16-manish.cloudflare.mediaoverquic.com:443(WIP)
Draft-14
- Most mature interop, widest support
- xquic-moq: Passed all interop runner tests
- moq-rs: Main branch
- moxygen: Supported
- moqlivemock: Go transport + JS CMSF player (draft-14 and draft-16)
- Cloudflare edge relays: Anycast at
draft-14.cloudflare.mediaoverquic.com:443
Interop Runner Matrix
The interop-runner at englishm.github.io/moq-interop-runner runs automated tests. Latest report (2026-04-15): 23 passed / 68 failed / 14 skipped out of 105 total.
Implementations in the matrix (11):
- moq-dev-js (client)
- moq-dev-rs (client + relay)
- moq-rs (client + relay, draft-14)
- moq-rs-draft-16 (client + relay)
- moxygen (client + relay)
- xquic (client + relay)
- imquic (relay, lorenzo-miniero)
- libquicr (relay)
- moqtail (relay)
- quiche-moq (relay, Google QUICHE C++ — martin-duke, Victor Vasiliev)
- moqx (relay, OpenMOQ’s moxygen fork) — new since Apr 10
Target version is draft-16. Version distribution: 48 tests at draft-16, 8 at draft-17, 49 at draft-14.
Best results: moq-rs-draft-16 self-test (all pass), moq-dev-js ←> moqx (6/6), moq-rs-draft-16 ←> moqx (5-6/6), moq-rs-draft-16 ←> moxygen (5-6/6), moq-rs-draft-16 ←> imquic (5-6/6), moq-rs self-test (all pass), moq-rs ←> moqx (all pass).
Individual run reports: https://englishm.github.io/moq-interop-runner/results/<DATE>_<TIME>/report.html
Known Interop Issues
- Properties Type collision (#1550 in moq-transport, #10 in LOC) - Property type IDs conflict between moq-transport-17 and loc-01
- Track Properties parsing - Different implementations handle the length prefix differently (see track-properties)
- PUBLISH_NAMESPACE behavior - Relay behavior around namespace announcements confuses some implementations (Daiki Matsui’s report, 2026-03-23)
Media Wire Format Interop
moq-media-interop (draft-cenzano-moq-media-interop-03) defines the concrete media wire format used for LOC-based media interop. It specifies how H.264 video, Opus/AAC-LC audio, and text are packaged into MOQT objects with extension headers. This is the format used by Meta’s moxygen relay and is relevant for any LOC-based interop testing. The draft expires 2026-04-23 — check datatracker for renewal.
Related
- interop-endpoints - Public relay endpoints
- interop-runner - Automated test framework
- moq-media-interop - Media wire format specification for LOC interop