Language: C++ Organization: Google Primary developers: martin-duke, Victor Vasiliev, with contributions from asedeno, dschinazi GitHub: google/quiche (MoQT module within Google’s QUICHE library)
Overview
A substantial C++ MoQT implementation inside Google’s QUICHE library (part of Chromium). Includes ~74+ source files plus a tools directory with relay, server, client, chat, and simulator applications. This is one of the more actively developed implementations in the ecosystem, with commits continuing into mid-2026.
Draft Support
- draft-16 — current target for the public relay
- Passed 41/41 conformance tests from alan-frindell (Feb 2026)
- Protocol work lands on
mainahead of the relay: newer draft-tracking refactors merge in the module while the public relay’s registered interop target still lags at draft-16. - draft-18 migration underway on
main(July 2026) — the module is being reshaped toward the draft-18 wire: SUBSCRIBE moved onto a dedicated bidirectional stream, the SUBSCRIBE_NAMESPACE/SUBSCRIBE_TRACKS split, and a codebase-wide class rename (see Recent Highlights). This is Google converging on the interop-runner’s draft-18 target from a very different C++ base than moqtail/moxygen.
Public Infrastructure
quichemoq.dev:443— martin-duke’s relay (draft-16)- Registered in interop-runner as quiche-moq
Recent Highlights
Day-by-day PR/issue history lives in the wiki log; this section keeps only durable milestones.
- Wire-migration resumed (Aug 11–12, 2026) — after being quiet in the module since Aug-4, four commits continue peeling control messages onto dedicated bidirectional streams: TRACK_STATUS moved to a separate stream (
c57a70d2, Aug-11), aMoqtResponseCallbackinvocation-consistency fix (8a147ac8), PUBLISH_NAMESPACE moved onto a bidi stream (4b2d81f4, Aug-12), and an OSS-build fix (d01a24d4). Extends the July-17 SUBSCRIBE-to-bidi pattern; the PUBLISH_NAMESPACE move coincided (on the stream-carriage axis) with moq-dev’s Aug-12 unsolicited-announce work (#2748) and moq-transport issue #1854. - draft-18 migration burst (July 17, 2026) — after being quiet in the module since July 8, three substantial commits move the impl toward draft-18: SUBSCRIBE moved to a dedicated bidirectional stream (
78341592; newMoqtSubscribeRequestStream/ResponseStream, SUBSCRIBE/SUBSCRIBE_OK/UNSUBSCRIBE removed from the control stream,MoqtUnsubscribemessage type dropped, session no longer owns subscriptions), a codebase-wide class rename (2f4ea0dd;SubscriptionPublisher→LivePublisher,SubscribeRemoteTrack→LiveSubscriber,RemoteTrack→ObjectSubscriber), and the SUBSCRIBE_NAMESPACE / SUBSCRIBE_TRACKS split (d106f181). Makes quiche a fifth codebase converging on the runner’s draft-18 target. - PUBLISH moved to a bidirectional stream (June 2026) — aligns Google’s C++ impl with the draft direction of carrying PUBLISH on a bidi stream.
- Control-stream architecture refactor (June 2026) — control-message handlers were folded into the session and the control stream split in two; a dedicated WebTransport-only client class was split out of
MoqtClient. - Session parameter control API (April 2026) —
MoqtClientandMoqtServercan control session parameters, groundwork for partial-object delivery on the relay. - Removed
moqt::SubscribeWindow(April 2026) — dropped legacy SUBSCRIBE window tracking as draft-17’s PUBLISH/SUBSCRIBE model settled. - Joining FETCH work (April 2026) — Joining FETCH limited to
largest_objectat time of SUBSCRIBE, with responsibility moved fromMoqtOutgoingQueueto the session layer, preparing for REWIND’s joining FETCH aspects.
Interop
- Successfully tested with moxygen, moq-rs, and moqtail at Boulder hackathon (Feb 2026)
- Registered in the interop-runner matrix
Disambiguation
There is also a separate Rust project called birneee/quiche_moq by Leon Birne, built on Cloudflare’s quiche crate (a Rust QUIC library). Created 2025-10-17. That project supports drafts 07-13 and 16 but is not in the interop runner. The naming collision is coincidental — both are named after QUIC libraries that happen to share the name “quiche.”
Related
- martin-duke - Primary developer, runs the public relay
- interop-endpoints - Public relay endpoints
- interop-runner - Automated test framework