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-11. 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-11), 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
Implementation of FETCH Exposure of more parameters ...
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.