quic library

A pure-Dart QUIC transport implementation.

This library exposes the core QUIC transport layer without the higher-level protocols (HTTP/3, WebTransport, or libp2p). Use it when you need direct control over endpoints, connections, streams, and scheduling.

Exports include:

Prefer importing package:quic_lib/quic_lib.dart when you need the entire public API (crypto, wire format, HTTP/3, WebTransport, libp2p). Import this barrel when your application only needs the transport primitives.

See also:

  • quic_lib.dart — the full public API.
  • http3.dart — HTTP/3 built on this transport.
  • webtransport.dart — WebTransport over HTTP/3.

Classes

BbrCongestionController
BBR (Bottleneck Bandwidth and Round-trip propagation time) congestion controller per RFC 8382.
CongestionController
Abstract congestion controller interface for QUIC connections.
ConnectionIsolate
Manages a single QUIC connection inside its own isolate.
CubicCongestionController
RFC 8312 / RFC 9002 CUBIC congestion controller.
Hystart
Hystart++ / basic Hystart helper for early slow-start exit.
IsolateSupervisor
Tracks active connection isolates by connection ID.
Multiaddr
A self-describing network address following the libp2p multiaddr format.
QuicConnection
Orchestrates all subsystems of a single QUIC connection.
QuicEndpoint
A QUIC endpoint that listens for and initiates connections over UDP.
QuicVersions
QUIC version constants and helpers per RFC 9000 and RFC 9369.
RoundRobinScheduler
A round-robin implementation of StreamScheduler.
StreamScheduler
Abstract interface for selecting the next QUIC stream to process.
UdpSocket

Enums

BbrState
ConnectionState
The states of a QUIC connection lifecycle.