#quic #connection #protocols #state-machine #stream #networking #quinn

kvarn-quinn-proto

Temporary Kvarn fork: State machine for the QUIC transport protocol

1 unstable release

0.11.0-alpha1 Feb 4, 2024

#1953 in Network programming


Used in 3 crates (2 directly)

MIT/Apache

1MB
18K SLoC

Low-level protocol logic for the QUIC protoocol

quinn-proto contains a fully deterministic implementation of QUIC protocol logic. It contains no networking code and does not get any relevant timestamps from the operating system. Most users may want to use the futures-based quinn API instead.

The quinn-proto API might be of interest if you want to use it from a C or C++ project through C bindings or if you want to use a different event loop than the one tokio provides.

The most important types are Endpoint, which conceptually represents the protocol state for a single socket and mostly manages configuration and dispatches incoming datagrams to the related Connection. Connection types contain the bulk of the protocol logic related to managing a single connection and all the related state (such as streams).

Dependencies

~1–13MB
~173K SLoC