Skip to main content

Module version

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§

ClientVersionPolicy
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).
ServerVersionPolicy
How a server negotiates versions (RFC 9368 §2.3, §5).
Version
A QUIC version number as it appears in long headers (RFC 8999 §5).
VersionInformation
The version_information transport parameter (RFC 9368 §3): the version an endpoint chose and the versions it can work with.
VersionInformationError
malformed version_information transport parameter
Wire
Everything about a version’s wire image that is not shared by all versions.
WireVersion
A Version this crate implements: its number, with the Wire constants that describe it.

Enums§

LongKind
Long header packet kinds, before the version decides how their type bits look.
ReservedVersionGrease
Where a reserved 0x?a?a?a?a version goes in an advertised version list (RFC 9368 §3).
VersionPolicyError
Why a version policy is not usable.
VersionPreference
Which version a server settles on when a client offers several compatible ones.

Statics§

V1_WIRE
V2_WIRE