Module profile
quic only.Expand description
Typed, invariant-preserving QUIC wire profiles.
A QuicProfile describes the parts of a connection’s wire image that an implementation
is free to choose: which versions it offers, how it lays out its transport parameters,
how long its connection IDs are, how large and how many its Initial datagrams are, and how
frames are arranged inside them. Every knob is checked when it is set, so a profile can
reproduce another implementation’s first flight but never an invalid one; there is no raw
byte hook.
QuicProfile::standard() is what this crate does on its own. The browser profiles were
taken from captures of the named browser versions and are verified against those captures
in this crate’s tests; crate::capture is the parser that reads a first flight back.
Structs§
- Connection
IdProfile - Connection ID lengths.
- Opaque
Parameter - A transport parameter this crate does not interpret, written as given.
- Packetization
Profile - How packets and datagrams are formed.
- Parameter
Id - The identifier of a transport parameter (RFC 9000 §18.2 and the QUIC transport parameter registry), including ones this crate does not otherwise know.
- Quic
Profile - A complete wire profile; see the module documentation.
- Transport
Limits - The advertised flow-control and timing limits, as the transport parameters carry them.
- Transport
Parameter Profile - How the transport parameters are laid out.
Enums§
- Grease
Parameter - The reserved parameter written to exercise the peer’s tolerance (RFC 9000 §18.1).
- Initial
Flight Layout - How the frames of a client’s Initial packets are arranged.
- Packet
Number Length - How long packet numbers are encoded.
- Padding
Placement - Where the bytes that bring an Initial datagram up to size go.
- Parameter
Order - The order transport parameters are written in.
- Profile
Error - A value this profile cannot hold.