Skip to content

web-transport

QUIC and WebTransport implementation for Rust, providing the networking layer for MoQ.

External Repository

This crate is maintained in a separate repository: moq-dev/web-transport

Overview

The web-transport crate provides:

  • QUIC client and server - Built on Quinn
  • WebTransport protocol - HTTP/3 based transport
  • Browser compatibility - Same protocol as browser WebTransport API
  • TLS management - Certificate handling utilities

Repository

GitHub: moq-dev/web-transport

Crates

The repository contains multiple crates:

CrateDescription
web-transportCore WebTransport implementation
web-transport-quinnQuinn-based QUIC transport
web-transport-wsWebSocket polyfill for non-WebTransport browsers

Installation

Add to your Cargo.toml:

toml
[dependencies]
web-transport = "0.1"
web-transport-quinn = "0.1"

Quick Start

Client & Server

See the web-transport repository for client and server examples.

For a real-world example of using web-transport with MoQ, see the rs/moq-native/examples/chat.rs example which demonstrates connection setup, publishing, and session management.

Features

  • Streams - Bidirectional and unidirectional streams
  • Datagrams - Unreliable, unordered data
  • Session Management - Peer/local addresses, graceful close
  • TLS - Self-signed certificates (dev), Let's Encrypt (production), certificate fingerprints
  • WebSocket Polyfill - See web-transport-ws

Integration with MoQ

The moq-lite crate uses web-transport internally. See the moq-native examples for how connections are established.

Next Steps

Licensed under MIT or Apache-2.0