http3 library
HTTP/3 built on top of the QUIC transport.
Implements RFC 9114, mapping HTTP semantics onto QUIC streams. This barrel exposes the HTTP/3 connection manager, request/response objects, frame types, and QPACK header compression.
Exports include:
- Http3Connection — manages SETTINGS, GOAWAY, and stream lifecycle.
- Http3Request / Http3Response — request and response abstractions with QPACK-encoded pseudo-headers.
- Http3FrameType and frame types — HEADERS, DATA, SETTINGS, GOAWAY, etc.
- Http3SettingsFrame / Http3SettingsId — connection settings negotiation.
Use this library when you are building an HTTP/3 client or server on top of
a QuicConnection. If you need the underlying transport primitives, import
quic.dart instead. If you need the full stack, import quic_lib.dart.
See also:
quic_lib.dart— the full public API.quic.dart— QUIC transport primitives.
Classes
- Capsule
- Base class for the Capsule Protocol (RFC 9297).
- CloseWebTransportSessionCapsule
- A CLOSE_WEBTRANSPORT_SESSION capsule (type 0x2843).
- DatagramCapsule
- A DATAGRAM capsule (type 0x00) carrying unreliable datagram data.
- DecoderInstruction
- QPACK decoder stream instructions per RFC 9204 Section 4.3.2.
- DrainWebTransportSessionCapsule
- A DRAIN_WEBTRANSPORT_SESSION capsule (type 0x78ae).
- Duplicate
- RFC 9204 Section 4.3.4 — Duplicate.
- EncoderInstruction
- Abstract base class for QPACK encoder stream instructions per RFC 9204 Section 4.3.
- ExtendedConnectRequest
- An Extended CONNECT request (RFC 9220) used to bootstrap protocols such as WebTransport or WebSockets over HTTP/3.
- GoawayCapsule
- A GOAWAY capsule (type 0x1d).
- Http3Connection
- Manages an HTTP/3 connection over a QUIC transport.
- Http3DataFrame
- HTTP/3 DATA frame payload.
- Http3HeadersFrame
- HTTP/3 HEADERS frame payload.
- Http3Request
- An HTTP/3 request with pseudo-headers, regular headers, and optional body.
- Http3Response
- An HTTP/3 response with status code, headers, and optional body.
- Http3SettingsFrame
- HTTP/3 SETTINGS frame payload.
- Http3StreamHandler
- Handles classification of an HTTP/3 stream based on its QUIC stream ID.
- InsertCountIncrement
- Insert Count Increment instruction (T = 00, 6-bit prefix).
- InsertWithNameReference
- RFC 9204 Section 4.3.2 — Insert with Name Reference.
- InsertWithoutNameReference
- RFC 9204 Section 4.3.3 — Insert with Literal Name.
- OriginFrame
- HTTP/3 ORIGIN frame payload.
- PriorityUpdateFrame
- HTTP/3 PRIORITY_UPDATE frame payload (RFC 9218 Section 7).
- PriorityUpdatePushFrame
- HTTP/3 PRIORITY_UPDATE frame for push streams (RFC 9218 Section 7).
- RegisterBidirectionalStreamCapsule
- A REGISTER_BIDIRECTIONAL_STREAM capsule (type 0x41).
- RegisterUnidirectionalStreamCapsule
- A REGISTER_UNIDIRECTIONAL_STREAM capsule (type 0x42).
- SectionAcknowledgment
- Section Acknowledgment instruction (T = 1, 7-bit prefix).
- SetDynamicTableCapacity
- RFC 9204 Section 4.3.1 — Set Dynamic Table Capacity.
- StreamCancellation
- Stream Cancellation instruction (T = 01, 6-bit prefix).
- UnknownCapsule
- An unknown capsule type encountered on the wire.
- WtMaxDataCapsule
- WT_MAX_DATA capsule (draft-ietf-webtrans-http3 §5.6.3).
- WtMaxStreamDataCapsule
- WT_MAX_STREAM_DATA capsule (draft-ietf-webtrans-http3 §5.6.4).
- WtMaxStreamsCapsule
- WT_MAX_STREAMS capsule (draft-ietf-webtrans-http3 §5.6.2).
Enums
- Http3FrameType
- HTTP/3 frame types per RFC 9114 Section 7.2.
- Http3SettingsId
- HTTP/3 SETTINGS identifiers per RFC 9114 Section 7.2.4.
- Http3StreamType
- HTTP/3 stream types per RFC 9114 Section 4.1.
- StreamType
- Unidirectional stream type identifiers per RFC 9114 Section 6.2.