Available on crate feature
quic only.Expand description
QUIC: the deterministic wire-protocol vocabulary and the async engine built on it.
proto is rama-quic-proto — the packet and frame codec,
version vocabulary and typed wire profiles, usable without the engine. The engine
(rama-quic) is re-exported at this module’s root.
Modules§
- profile
std - Applying a QUIC wire profile to this engine’s configuration.
- proto
- QUIC wire types, codec, version vocabulary and profiles for Rama.
- qlog
std - Typed QUIC diagnostics with optional async recording.
- tls
std - TLS for QUIC: how a connection’s identity and application protocol are configured.
Structs§
- Accept
std - Future produced by
Endpoint::accept - Accept
Bi std - Future produced by
Connection::accept_bi - Accept
Uni std - Future produced by
Connection::accept_uni - AckFrequency
Config std - Parameters for controlling the peer’s acknowledgement frequency
- Address
Token Key std - The key a server seals address-validation tokens with (RFC 9000 §8.1).
- BiStream
Reservation std - Owned credit for one bidirectional stream, returned by
Connection::try_reserve_bi. - Bloom
Token Log std - Bloom filter-based
TokenLog - Chunk
std - A chunk of data from the receive stream
- Client
Config std - Configuration for outgoing connections
- Closed
Stream std - Error indicating that a stream has not been opened or has already been finished or reset. closed stream
- Connecting
std - In-progress connection attempt future
- Connection
std - A QUIC connection.
- Connection
Stats std - Connection statistics
- Driver
Stats std - Socket and receive-queue statistics for one connection, counted by the driver around the
protocol engine. What the engine itself counts is
ConnectionStats. - Endpoint
std - A QUIC endpoint.
- Endpoint
Builder std - An endpoint being built: the runtime it will live on, what it is configured with, and the socket it will bind.
- Endpoint
Config std - Global configuration for the endpoint, affecting all connections
- Endpoint
Stats std - Statistics on Endpoint activity
- Export
Keying Material Error std - The requested output length exceeds the exporter’s limit. failed to export keying material
- Frame
Stats std - Number of frames transmitted or received of each frame type
- Hashed
Connection IdGenerator std - Generates 8-byte connection IDs that can be efficiently
validated - Idle
Timeout std - Maximum duration of inactivity to accept before timing out the connection
- Incoming
std - An incoming connection for which the server has not yet begun its part of the handshake
- Incoming
Future std - Basic adapter to let
Incomingbeawait-ed like aConnecting - MtuDiscovery
Config std - Parameters governing MTU discovery.
- Negotiated
TlsParameters std - TLS parameters reported by either endpoint and stored in connection extensions. QUIC can expose this while the handshake progresses; optional values may become available later and do not imply handshake completion.
- None
Token Log std - Null implementation of
TokenLog, which never accepts tokens - None
Token Store std - Null implementation of
TokenStore, which does not store any tokens - OpenBi
std - Future produced by
Connection::open_bi - OpenUni
std - Future produced by
Connection::open_uni - Packet
Queue Stats std - Occupancy and drop counters of a queue of received packets.
- Path
Stats std - Statistics related to a transmission path
- Random
Connection IdGenerator std - Generates purely random connection IDs of a specified length
- Read
Datagram std - Future produced by
Connection::read_datagram - Receive
Queue Limits std - Bounds for received packets queued between the endpoint driver and a connection driver.
- Recv
Stream std - A stream that can only be used to receive data
- Retry
Error std - Error for a Retry that was not sent; the
Incomingis handed back for another decision - Send
Datagram std - Future produced by
Connection::send_datagram_wait - Send
Stream std - A stream that can only be used to send data
- Server
Config std - Parameters governing incoming connections
- Stateless
Reset Key std - The key an endpoint derives the stateless reset tokens it issues from (RFC 9000 §10.3).
- StdSystem
Time std - Default implementation of
TimeSource - Stored
Token std - An address-validation token a client keeps for its next connection to the same server, with what it needs to know about the connection that issued it.
- Stream
Abort Handle std - Cloneable cancellation handle independent of the stream’s I/O owner. It resets sending and, for bidirectional streams, stops receiving. Dropping the handle has no effect on the stream.
- Token
Memory Cache std TokenStoreimplementation that stores up toNtokens per server name for up to a limited number of server names, in-memory- Token
Reuse Error std - validation token may have been reused
- Transport
Config std - Parameters governing the core QUIC state machine
- UdpStats
std - Statistics about UDP datagrams transmitted or received on a connection
- Validation
Token Config std - Configuration for sending and handling validation tokens in incoming connections
- Written
std - Indicates how many bytes and chunks had been transferred in a write operation
- Zero
RttAccepted std - Future that completes when a connection is fully established
Enums§
- Config
Error std - Errors in the configuration of an endpoint
- Congestion
Control std - Which congestion controller a connection’s paths use.
- Connect
Error std - Errors in the parameters being used to create a new connection
- Connection
Error std - Reasons why a connection might be lost
- Preferred
Address Policy std - How a client answers a server’s preferred address (RFC 9000 §9.6).
- Read
Error std - Errors that arise from reading from a stream.
- Read
Exact Error std - Errors that arise from reading from a stream.
- Read
ToEnd Error std - Errors from
RecvStream::read_to_end - Reset
Error std - Errors that arise while waiting for a stream to be reset
- Retry
Refused std - Why a Retry was not sent
- Send
Datagram Error std - Errors that can arise when sending a datagram
- Shutdown
Outcome std - Stopped
Error std - Errors that arise while waiting for a send stream to complete.
- Write
Error std - Errors that arise from writing to a stream
Constants§
- DEFAULT_
SHUTDOWN_ BUDGET std - How long a shutdown gives drivers to finish before it stops waiting and forces them.
- DEFAULT_
SOCKET_ BUFFER_ SIZE std - The kernel receive and send buffer an endpoint asks for on the sockets it binds itself.
- KEY_
MATERIAL_ SIZE std - Bytes of secret material accepted by the fixed-size key constructors.
- MIN_
INITIAL_ CONGESTION_ WINDOW std - The smallest initial congestion window this crate accepts: two datagrams of the size every QUIC path carries (RFC 9000 §14.1). It is a policy floor, not a protocol one; a window of zero was measured to leave a connection unable to complete its handshake.
Traits§
- Connection
IdGenerator std - Generates connection IDs for incoming connections
- Time
Source std - Object to get current
SystemTime - Token
Log std - Responsible for limiting clients’ ability to reuse validation tokens
- Token
Store std - Responsible for storing validation tokens received from servers and retrieving them for use in subsequent connections
Type Aliases§
- Connection
IdGenerator Factory std - How an endpoint makes a connection ID generator: one call per endpoint, so each has its own state.