moqtransport
is a Go implementation of Media over QUIC Transport on top of quic-go and optionally webtransport-go.
This library implements the Media over QUIC Transport (MoQT) protocol as defined in draft-ietf-moq-transport-08. MoQT is designed to operate over QUIC or WebTransport for efficient media delivery with a publish/subscribe model.
This code, as well as the specification, is work in progress. The implementation currently covers most aspects of the MoQT specification (draft-08), including:
Session establishment and initialization
Control message encoding and handling
Data stream management
Track announcement and subscription
Error handling
Support for both QUIC and WebTransport
- Enhanced relay support for CDN-like deployments
- More comprehensive priority handling
- Additional performance optimizations
- Extended examples for various media streaming scenarios
See the date examples in the examples directory for a simple demonstration of how to use this library.
Basic usage involves:
- Creating a connection using either QUIC or WebTransport
- Establishing a MoQT session
- Implementing handlers for various MoQT messages
- Publishing or subscribing to tracks
quicmoq/
: QUIC-specific implementationwebtransportmoq/
: WebTransport-specific implementationinternal/
: Internal implementation detailsexamples/
: Example applications demonstrating usageintegrationtests/
: Integration tests
- Go 1.23.6 or later
- Dependencies are managed via Go modules
See the LICENSE file for details.