A fallback transport mechanism for moq-transport when UDP/QUIC is unavailable.
Problem
Some environments block UDP traffic (corporate networks, certain mobile networks), making QUIC unavailable. Safari also lacks WebTransport support, requiring an alternative.
Solution
QMux provides QUIC-like multiplexing over TLS+TCP, enabling MOQT to work over TCP connections. luke-curley uses QMux for Safari support.
ALPN Negotiation
QMux versions are indicated in the ALPN string:
qmux-00.moqt-17- QMux version 0, MOQT draft-17qmux-00.moqt-16- QMux version 0, MOQT draft-16qmux-00alone implies draft-14 (legacy, technically incorrect)
When qmux-01 comes out, it would double the ALPN permutations. Luke’s qmux library automatically adds/strips the prefix for supported versions.
Design Discussion
alan-frindell (2026-03-15): “I sort of think the right answer is to use moqt-16, and define that TLS+TCP moqt-16 ⇒ qmux-00” - generated 19 replies.
Deployment
- Meta’s moxygen relay at
fb.mvfst.net:9449supports both QMux TLS/TCP and QUIC - WebSocket proxy available at
wss://fb.mvfst.net:9450proxying to TLS on port 9449
Related
- moq-transport - Main protocol
- interop-endpoints - Relay endpoints supporting QMux