Public relay endpoints available for MOQ interop testing.

Cloudflare (moq-rs)

EndpointDraftTransportNotes
draft-14.cloudflare.mediaoverquic.com:44314QUIC + WebTransportAnycast edge relay
draft-07.cloudflare.mediaoverquic.com:44307QUIC + WebTransportDeprecated
interop-relay.cloudflare.mediaoverquic.com:44314QUIC + WebTransportSingle instance, mlog enabled
draft-16-manish.cloudflare.mediaoverquic.com:44316QUIC + WebTransportWIP, mlog enabled
draft-18-interop.cloudflare.mediaoverquic.com:44318QUIC + WebTransportAuto-deployed from draft-18-dev (PR #176); registered as moq-rs-draft-18. Since June 11-12 interim. July 19–23 Hackathon: Mike English rebased/fixed it back to draft-18 + PUBLISH + SUBSCRIBE_NAMESPACE, but it fails on SUBSCRIBE in Jordi Cenzano’s matrix (closes the QUIC stream). Root cause (Kota Yatagai, July 23): the relay retains a namespace/track-name after a session ends, so a same-name re-publish is treated as a request after PUBLISH_DONE; objects never flow. July 24: afrind independently reproduced the SUBSCRIBE failure (the relay sends him a STOP_SENDING, same as Jordi); Mike English confirmed “a couple parts to what’s broken here” and is working it with Kota’s diagnosis. moq-rs merged a draft-18 byte-valued-parameter encoding fix (#192, July 23) and a SUBSCRIBE_NAMESPACE message-type wire fix (0x11 → 0x50) (#193, July 24)

Interop relays support --mlog-serve: grab relay-side traces at /mlog/<connection-id> over HTTPS.

Meta (moxygen)

EndpointDraftTransportNotes
fb.mvfst.net:944814, 16, 18QUIC + WebTransport + qmuxMain relay (moqt:// or HTTPS); draft-18 since June 9 hackathon (no REDIRECT/GOAWAY-on-request-stream/PUBLISH_BLOCKED yet); accepts qmux-01 conns since June 11 (afrind). July-20 Vienna Hackathon: Luke Curley’s moq-cli published/subscribed full raw-QUIC draft-18 end-to-end (clean FFmpeg decode), but HTTPS/WebTransport hit WT_BUFFERED_STREAM_REJECTED — afrind shipped a buffered-stream fix same day. Moxygen’s data-plane conformance suite for relays is available for testing (requires prefix-based routing)
fb.mvfst.net:944916QUIC + QMux TLS/TCPqmux enabled
wss://fb.mvfst.net:945016WebSocket TLSProxy via websocat

Luke Curley (moq-dev)

EndpointDraftTransportNotes
cdn.moq.dev/anon14-17QUIC + WebTransportBrowser pub/sub testing; hop-routed across 14 edge nodes
cdn.moq.pro/anon14-19QUIC + WebTransportHang CDN relay; announced at the July-18 Vienna Hackathon as supporting the full draft-14…19 range. Also fronts RTMP (rtmps://cdn.moq.pro:1935), SRT (srt://cdn.moq.pro:877), and WHEP (https://cdn.moq.pro/whep/…) converters into/out of Hang broadcasts. Caveats (July-19/20 Hackathon): the IETF path is “nowhere near as tested” as Hang’s own clients (Luke Curley) — SUBSCRIBE against a foreign publisher was hitting “Track does not exist” / “publisher not found” for Miniero, Jordi Cenzano, and afrind; the relay sends unsolicited PUBLISH_NAMESPACE (a legacy holdover for clients that don’t implement SUBSCRIBE_NAMESPACE). Native-QUIC auth is broken (July 20): /anon returns 401 and QUIC PATH is not wired through for the IETF path (works for moq-lite / qmux only) — Luke’s workarounds are the authenticated ?jwt=<token> URL or qmux (TCP/TLS/WebSocket); afrind still could not connect over native QUIC by end of July 20. A design debate surfaced (Luke ↔ afrind): make SUBSCRIBE_NAMESPACE mandatory and PUBLISH_NAMESPACE an optional RTT optimization, vs. keeping them as distinct authorization models. Filters are not implemented and Luke says he likely never will — they “complicate billing”. July 23: still fails on SUBSCRIBE (closes the QUIC stream) in Jordi Cenzano’s moq-encoder-player matrix

Clients (Luke Curley): the JS player/publisher at moq.pub?relay=<host> and moq.watch?relay=<host> and the Rust moq-cli (cargo install moq-cli) both support draft-14…19 against any relay (demoed at the July-18 Hackathon).

Interop docs: doc.moq.dev/concept/standard/interop.html

Alibaba (xquic-moq)

EndpointDraftTransportNotes
47.96.89.233:443314QUIC onlyPassed all interop runner tests

Martin Duke (Google QUICHE MoQT)

EndpointDraftTransportNotes
quichemoq.dev:44316QUIC + WebTransport41/41 conformance tests passed (Feb 2026)

MOQtail

EndpointDraftTransportNotes
relay.moqtail.dev14WebTransportZafer Gurel’s original relay
relay18.moqtail.dev18WebTransport (+ raw QUIC WIP)Zafer Gürel’s draft-18 relay, brought online July 23 for IETF-126 conformance testing; public Grafana dashboard. July 23: in Jordi Cenzano’s moq-encoder-player matrix it carries full video+audio. Raw-QUIC ALPN=moqt-18 negotiation failed for Moqtopus + afrind (relay also advertises h3) though imquic’s client connects over raw QUIC; a PUBLISH_NAMESPACE+SUBSCRIBE flow hit “no publisher found” under debugging

Akamai

EndpointDraftTransportNotes
moq-test.akaleapi.net--Test tools
moq-test-beta.akaleapi.net--Beta version

Lorenzo Miniero (imquic)

EndpointDraftTransportNotes
lminiero.it:900016, 17, 18, 19 (partial)QUIC + WebTransportRuns imquic main (draft-18 since May 18; draft-19 merged to main July 19). Registered with the runner at draft-18 (June 11). A first draft-19 build was deployed here July 18 for the Vienna Hackathon — filter serialization/deserialization works, but OBJECT_PROPERTY_FILTER / TRACK_PROPERTY_FILTER are currently ignored. July 20: the ecosystem’s first cross-implementation draft-19 interopLuke Curley’s moq-cli (moq-dev) published/subscribed against this relay in forced draft-19 (76,804 bytes, 5.23 s, H.264-validated) and forced draft-18. (14/15 support has been dropped)

Nokia (Yu You)

EndpointDraftTransportNotes
moqt.nokiaresearch.com:4443/moq17, 18QUIC + WebTransportNokia Research relay; pre-announced June 2, live for the June 9-10 hackathon. Registered with the interop-runner as moqt-nr at draft-18 (June 11). Actively re-tested at the July-19/20 Vienna Hackathon with fixes for redundant request_ids and force-forwarding changes by subscribers; both PUB_NS + SUBSCRIBE and PUBLISH + SUBSCRIBE_TRACKS flows verified working (afrind, Kota Yatagai). Note: by default the relay only issues upstream subscriptions when there is an active publisher for a track (a RENDEZVOUS_TIMEOUT=0 behavior) — a rendezvous-semantics interpretation Yu You patched mid-Hackathon so PUB_NS-then-SUBSCRIBE routes without a timeout. July 20: Yu You fixed the SUBSCRIBE_TRACKS / SUBSCRIBE_NAMESPACE split and a lingering deprecated STREAM_HEADER_TRACK (0x50) stream opener (surfaced by Luke Curley), redeploying twice. July 22: passed all 41 of afrind’s draft-18 data-plane conformance tests over both raw QUIC and WebTransport — the first relay to clear the full suite

Related