Module version
Available on crate feature
quic only.Expand description
QUIC protocol versions and the wire constants that differ between them.
RFC 8999 fixes what every version shares; RFC 9000/9001 define version 1 and RFC 9369 defines version 2 as version 1 with different long-header type bits, Initial salt, HKDF labels and Retry integrity key. Everything here is a pure function of the version number.
Structs§
- Client
Version Policy - How a client picks its first flight’s version and what it lets the server negotiate (RFC 9368 §2.5, §3).
- Labels
- The HKDF-Expand-Label labels a version uses to derive packet protection material (RFC 9001 §5.1, §5.4, §6.1; RFC 9369 §3.3.2).
- Server
Version Policy - How a server negotiates versions (RFC 9368 §2.3, §5).
- Version
- A QUIC version number as it appears in long headers (RFC 8999 §5).
- Version
Information - The
version_informationtransport parameter (RFC 9368 §3): the version an endpoint chose and the versions it can work with. - Version
Information Error - malformed version_information transport parameter
- Wire
- Everything about a version’s wire image that is not shared by all versions.
- Wire
Version - A
Versionthis crate implements: its number, with theWireconstants that describe it.
Enums§
- Long
Kind - Long header packet kinds, before the version decides how their type bits look.
- Reserved
Version Grease - Where a reserved
0x?a?a?a?aversion goes in an advertised version list (RFC 9368 §3). - Version
Policy Error - Why a version policy is not usable.
- Version
Preference - Which version a server settles on when a client offers several compatible ones.