[][src]Crate quinn_proto

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).

Structs

ApplicationClose

Reason for closing the connection

ClientConfig

Configuration for outgoing connections

Connection

Protocol state and logic for a single QUIC connection

ConnectionClose

Reason for closing the connection

ConnectionHandle

Internal identifier for a Connection currently associated with an endpoint

ConnectionId

Protocol-level identifier for a connection.

Endpoint

The main entry point to the library

EndpointConfig

Global configuration for the endpoint, affecting all connections

ServerConfig

Parameters governing incoming connections.

StreamId

Identifier for a stream within a particular connection

TimerUpdate

Change to apply to a specific timer

TokenKey

Key used to sign and verify stateless resets

Transmit

An outgoing packet

TransportConfig

Parameters governing the core QUIC state machine

TransportError

Transport-level errors occur when a peer violates the protocol specification

TransportErrorCode

Transport-level error code

Enums

ConfigError

Errors in the configuration of an endpoint

ConnectError

Errors in the parameters being used to create a new connection

ConnectionError

Reasons why a connection might be lost.

ConnectionEvent

Events to be sent to the Connection

DatagramEvent

Event resulting from processing a single datagram

Directionality

Whether a stream communicates data in both directions or only from the initiator

EcnCodepoint

Explicit congestion notification codepoint

EndpointEvent

Events to be sent to the Endpoint

Event

Events of interest to the application

ReadError

Errors triggered when reading from a recv stream

Side

Whether an endpoint was the initiator of a connection

Timer

Kinds of timeouts needed to run the protocol logic

TimerSetting

Change applicable to one of a connection's timers

WriteError

Errors triggered while writing to a send stream

Constants

ALPN_QUIC_H3

TLS ALPN value for H3

ALPN_QUIC_HTTP

TLS ALPN value for HTTP over QUIC

VERSION

The QUIC protocol version implemented