Skip to main content

Module quic

Module quic 

Source
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§

profilestd
Applying a QUIC wire profile to this engine’s configuration.
proto
QUIC wire types, codec, version vocabulary and profiles for Rama.
qlogstd
Typed QUIC diagnostics with optional async recording.
tlsstd
TLS for QUIC: how a connection’s identity and application protocol are configured.

Structs§

Acceptstd
Future produced by Endpoint::accept
AcceptBistd
Future produced by Connection::accept_bi
AcceptUnistd
Future produced by Connection::accept_uni
AckFrequencyConfigstd
Parameters for controlling the peer’s acknowledgement frequency
AddressTokenKeystd
The key a server seals address-validation tokens with (RFC 9000 §8.1).
BiStreamReservationstd
Owned credit for one bidirectional stream, returned by Connection::try_reserve_bi.
BloomTokenLogstd
Bloom filter-based TokenLog
Chunkstd
A chunk of data from the receive stream
ClientConfigstd
Configuration for outgoing connections
ClosedStreamstd
Error indicating that a stream has not been opened or has already been finished or reset. closed stream
Connectingstd
In-progress connection attempt future
Connectionstd
A QUIC connection.
ConnectionStatsstd
Connection statistics
DriverStatsstd
Socket and receive-queue statistics for one connection, counted by the driver around the protocol engine. What the engine itself counts is ConnectionStats.
Endpointstd
A QUIC endpoint.
EndpointBuilderstd
An endpoint being built: the runtime it will live on, what it is configured with, and the socket it will bind.
EndpointConfigstd
Global configuration for the endpoint, affecting all connections
EndpointStatsstd
Statistics on Endpoint activity
ExportKeyingMaterialErrorstd
The requested output length exceeds the exporter’s limit. failed to export keying material
FrameStatsstd
Number of frames transmitted or received of each frame type
HashedConnectionIdGeneratorstd
Generates 8-byte connection IDs that can be efficiently validated
IdleTimeoutstd
Maximum duration of inactivity to accept before timing out the connection
Incomingstd
An incoming connection for which the server has not yet begun its part of the handshake
IncomingFuturestd
Basic adapter to let Incoming be await-ed like a Connecting
MtuDiscoveryConfigstd
Parameters governing MTU discovery.
NegotiatedTlsParametersstd
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.
NoneTokenLogstd
Null implementation of TokenLog, which never accepts tokens
NoneTokenStorestd
Null implementation of TokenStore, which does not store any tokens
OpenBistd
Future produced by Connection::open_bi
OpenUnistd
Future produced by Connection::open_uni
PacketQueueStatsstd
Occupancy and drop counters of a queue of received packets.
PathStatsstd
Statistics related to a transmission path
RandomConnectionIdGeneratorstd
Generates purely random connection IDs of a specified length
ReadDatagramstd
Future produced by Connection::read_datagram
ReceiveQueueLimitsstd
Bounds for received packets queued between the endpoint driver and a connection driver.
RecvStreamstd
A stream that can only be used to receive data
RetryErrorstd
Error for a Retry that was not sent; the Incoming is handed back for another decision
SendDatagramstd
Future produced by Connection::send_datagram_wait
SendStreamstd
A stream that can only be used to send data
ServerConfigstd
Parameters governing incoming connections
StatelessResetKeystd
The key an endpoint derives the stateless reset tokens it issues from (RFC 9000 §10.3).
StdSystemTimestd
Default implementation of TimeSource
StoredTokenstd
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.
StreamAbortHandlestd
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.
TokenMemoryCachestd
TokenStore implementation that stores up to N tokens per server name for up to a limited number of server names, in-memory
TokenReuseErrorstd
validation token may have been reused
TransportConfigstd
Parameters governing the core QUIC state machine
UdpStatsstd
Statistics about UDP datagrams transmitted or received on a connection
ValidationTokenConfigstd
Configuration for sending and handling validation tokens in incoming connections
Writtenstd
Indicates how many bytes and chunks had been transferred in a write operation
ZeroRttAcceptedstd
Future that completes when a connection is fully established

Enums§

ConfigErrorstd
Errors in the configuration of an endpoint
CongestionControlstd
Which congestion controller a connection’s paths use.
ConnectErrorstd
Errors in the parameters being used to create a new connection
ConnectionErrorstd
Reasons why a connection might be lost
PreferredAddressPolicystd
How a client answers a server’s preferred address (RFC 9000 §9.6).
ReadErrorstd
Errors that arise from reading from a stream.
ReadExactErrorstd
Errors that arise from reading from a stream.
ReadToEndErrorstd
Errors from RecvStream::read_to_end
ResetErrorstd
Errors that arise while waiting for a stream to be reset
RetryRefusedstd
Why a Retry was not sent
SendDatagramErrorstd
Errors that can arise when sending a datagram
ShutdownOutcomestd
StoppedErrorstd
Errors that arise while waiting for a send stream to complete.
WriteErrorstd
Errors that arise from writing to a stream

Constants§

DEFAULT_SHUTDOWN_BUDGETstd
How long a shutdown gives drivers to finish before it stops waiting and forces them.
DEFAULT_SOCKET_BUFFER_SIZEstd
The kernel receive and send buffer an endpoint asks for on the sockets it binds itself.
KEY_MATERIAL_SIZEstd
Bytes of secret material accepted by the fixed-size key constructors.
MIN_INITIAL_CONGESTION_WINDOWstd
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§

ConnectionIdGeneratorstd
Generates connection IDs for incoming connections
TimeSourcestd
Object to get current SystemTime
TokenLogstd
Responsible for limiting clients’ ability to reuse validation tokens
TokenStorestd
Responsible for storing validation tokens received from servers and retrieving them for use in subsequent connections

Type Aliases§

ConnectionIdGeneratorFactorystd
How an endpoint makes a connection ID generator: one call per endpoint, so each has its own state.