[−][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 |
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 |