WebTransport and MOQ: The Browser Connection
How WebTransport enables MOQ in the browser, bringing sub-second media delivery to web applications without plugins or extensions.
The Browser Gap
One of the biggest challenges for real-time protocols has been browser support. WebRTC solved this with built-in browser APIs, but its peer-to-peer model doesn't scale. Traditional streaming protocols like HLS work in browsers but add seconds of latency.
MOQ bridges this gap through WebTransport.
What is WebTransport?
WebTransport is a web API that provides bidirectional transport over HTTP/3 (which runs on QUIC). It offers:
- Reliable streams: Ordered, reliable byte streams (like TCP)
- Unreliable datagrams: Fire-and-forget messages (like UDP)
- Multiplexing: Many streams over a single connection
- Built-in security: Runs over TLS 1.3
How MOQ Uses WebTransport
MOQ transport maps naturally onto WebTransport's capabilities:
- Control messages (SUBSCRIBE, ANNOUNCE, etc.) use bidirectional streams
- Media objects can be sent on unidirectional streams or datagrams
- Stream multiplexing allows different tracks and priorities on the same connection
- Session establishment uses the standard WebTransport handshake
// Simplified browser-side MOQ subscription
const transport = new WebTransport("https://relay.example.com/moq");
await transport.ready;
// The MOQ protocol runs over WebTransport streams
const stream = await transport.createBidirectionalStream();
// Send SUBSCRIBE message on the stream...
Browser Support
WebTransport is supported in:
- Chrome/Edge 97+ (stable since January 2022)
- Firefox (behind a flag, with increasing support)
- Safari (under development)
Implications
With WebTransport, any web application can become a MOQ subscriber (or even publisher). This means:
- Live streaming platforms can deliver sub-second latency without custom players
- Real-time collaboration tools can use MOQ for media without WebRTC complexity
- Gaming platforms can stream gameplay with near-zero delay
- Auction and trading platforms can deliver real-time video feeds
The Full Stack
A complete browser-based MOQ stack looks like:
┌─────────────────────┐
│ Web Application │
├─────────────────────┤
│ MOQ Client (JS) │
├─────────────────────┤
│ WebTransport API │
├─────────────────────┤
│ HTTP/3 (QUIC) │
└─────────────────────┘
This stack is entirely native to the browser — no plugins, extensions, or custom protocols needed.