Skip to content

ad hoc interop reports

Giovanni Marzot edited this page Jul 24, 2026 · 22 revisions

Capturing anecdotal reports of interop achieved during hackathons, etc.

2026-07 IETF 126 (Vienna)

aiomoqt (Giovanni Marzot) [remote]

Link: aiomoqt (Python asyncio MoQT over aiopquic)

Tested as publisher + subscriber client pair through each public relay, raw QUIC (moqt-18) and WebTransport: control-plane conformance (6-case suite: setup, announce, publish-namespace-done, subscribe-error, announce-subscribe, subscribe-before-announce) plus end-to-end object delivery (pub -> relay -> subs, objects counted at the subscriber).

Working (MOQv18) — control plane + object delivery, raw QUIC + WT

  • moxygen (fb.mvfst.net:9448):
    • Verified publish - subscribe, objects delivered end-to-end
  • Nokia (moqt.nokiaresearch.com:4443):
    • Verified publish - subscribe, objects delivered end-to-end
    • Relay holds SUBSCRIBE_OK until upstream serves (forward-and-wait model); objects flow — noted, not a failure
  • Lorenzo's - Meetecho imquic (lminiero.it:9000):
    • Verified publish - subscribe, objects delivered end-to-end (verified 2026-07-24)
  • openmoq moqx (moqx-main.ci.openmoq.org:4433):
    • Verified publish - subscribe, objects delivered end-to-end, MOQv14/v16/v18
  • moqtail (relay18.moqtail.dev):
    • Verified publish - subscribe, objects delivered end-to-end (verified 2026-07-24)

Failing (MOQv18)

  • Cloudflare (draft-18-interop.cloudflare.mediaoverquic.com): control plane passes (publisher sends PUB_NS + PUBLISH), object delivery fails: (can debug together as needed)
    • Reproducible on raw QUIC and WT, 3 attempts each
  • Cloudflare (draft-18-interop.cloudflare.mediaoverquic.com): much improved after the 2026-07 moq-rs updates — single-subscriber object delivery now passes. Still failing under concurrent subscribers: with 3 subscribers, one never completes SUBSCRIBE (request timeout, code=2) and the receiving subscribers get a partial set (763/912 complete objects). Identical on raw QUIC and WT (verified 2026-07-24).
  • Luke's cdn.moq.pro/anon: subscribe-error and subscribe-before-announce cases fail; eager SUBSCRIBE_OK observed with zero objects forwarded. (can debug together as needed)

aiomoqt as relay (peer clients -> aiomoqt server, raw QUIC + WT)

  • Working: moq-rs (v14), moq-rs draft-16 fork, moqx, moxygen clients — pass at MOQv14/v16

  • MOQv18 relay-side had control-plane bugs fixed on the 0.11.0 branch (unreleased)

  • Working at MOQv18 (official nightly 2026-07-24, docker, control plane): moxygen and moqx clients (raw QUIC + WT); imquic and moq5 clients (raw QUIC only — their WT connects fail on a known server-side H3 SETTINGS gap, fix in progress)

  • Failing at MOQv18: moq-dev-js, moq-dev-rs, moq-go, moq-rs-draft-18, moqtopus, xquic clients — d18 session-establishment defects on our side, fixed with reproducing tests on the unreleased 0.11.0 branch; re-validation lands with the 0.11.0 release

Notes

  • Compat tolerances are opt-in and annotated in TAP output, never silently passed. At v18: Cloudflare endpoints require PUB_NS + PUBLISH (publish-both). At v16 only: tolerate CF d16 fork's truncated trailing-extensions block (lenient-extensions) and libquicr's non-spec error codes.
  • Full matrix (v14/v16/v18 x raw QUIC/WT, incl. join + fetch tiers): CI run

moq-encoder-player (Jordi Cenzano)

Link: moq-encoder-player

Working full audio + video Encoder -> relay -> Player

  • MOQTail (MOQv18 - MOQMIv3):
    • Verified video-audio publish - subscribe (PLAYBACK OK)
  • moxygen (MOQv18 - MOQMIv3):
    • Verified video-audio publish - subscribe (PLAYBACK OK)
  • Nokia (MOQv18 - MOQMIv3):
    • Verified video-audio publish - subscribe (PLAYBACK OK)
  • Lorenzo's -Meetecho (MOQv18 - MOQMIv3):
    • Verified video-audio publish - subscribe (PLAYBACK OK)

Failing Encoder -> relay -> Player

  • Cloudflare: Failing on SUBSCRIBE (closing QUIC stream)
  • Luke's cdn.moq.pro/anon : Failing on SUBSCRIBE (closing QUIC stream)

moxygen (Alan Frindell)

  • Nokia:

    • Verified PUBLISH + SUB_TRACKs and PUB_NS + SUBSCRIBE flows
    • Passing all 41 data plane tests with draft-18 QUIC and WT
  • moq.pro/anon

    • QUIC connection fails with 401
    • WT connection requires buffering WT streams before 200 because of quic/wt/moq interactions. Implementing

Moqtopus (Kota Yatagai) draft-18

  • Nokia
    • PUBLISH_NS and SUBSCRIBE flow works for both subgroup and datagram
    • REQUEST_UPDATE and corresponding OK or ERROR also works
  • Meetecho
    • PUBLISH_NS and SUBSCRIBE flow works for both subgroup and datagram
    • REQUEST_UPDATE and corresponding OK or ERROR also works
  • Moxygen
    • PUBLISH_NS and SUBSCRIBE flow works for both subgroup and datagram
    • REQUEST_UPDATE and corresponding OK or ERROR also works
  • Cloudflare
    • PUBLISH_NS and SUBSCRIBE flow works for both subgroup and datagram
    • REQUEST_UPDATE and corresponding OK or ERROR also works
  • moq.pro
    • Both publisher and subscriber fails after SETUP with peer shutdown

2026-06 London interim

(From Jordi Cenzano)

Encoder(moq-encoder-player) -> Relay(X) -> Player (moq-encoder-player)

moq-web

(from Suhas Nandakumar)

Moqtopus

(from Kota Yatagai)

  • Moqtopus subscriber successfully negotiated SETUP and SUBSCRIBE/SUBSCRIBE_OK with imquic (lminiero.it:9000)

moxygen

(from Alan Frindell and Aman Sharma)

  • Full draft-16 interop with google quiche

  • draft-18 interop between moq-web (Suhas) and the moxygen relay

  • Very minimal draft-18 interop with Lorenzo

  • draft-18 interop between Nokia and moxygen relay. Minimal interop between moxygen and Nokia relay