Crate proto
Available on crate feature
quic only.Expand description
QUIC wire types, codec, version vocabulary and profiles for Rama.
This crate is the deterministic protocol layer beneath rama-quic: the packet and frame
codec, the version wire tables and negotiation vocabulary, and the typed, invariant-checked
profiles describing a client’s observable wire image. It has no connection state
machine and no async runtime, so tools that only need to read or describe QUIC on the wire —
user-agent emulation, fingerprinting, packet analysis — can depend on it without pulling in
the engine.
§Rama
Crate used by the end-user rama crate and rama crate authors alike.
Learn more about rama:
- Github: https://github.com/plabayo/rama
- Book: https://ramaproxy.org/book/
Modules§
- capture
std - Reading a first flight back from the wire: what any observer sees, and what one that can open the Initial packets sees.
- coding
- Coding related traits.
- constant_
time - crypto
- Packet-protection key interfaces (RFC 9001 §5).
- frame
- packet
- profile
- Typed, invariant-preserving QUIC wire profiles.
- range_
set - transport_
parameters - QUIC connection transport parameters
- version
- QUIC protocol versions and the wire constants that differ between them.
Structs§
- Connection
Id - Protocol-level identifier for a connection.
- Invalid
Cid - connection ID was not recognized by the connection ID generator
- Reset
Token - Stateless reset token used to securely communicate that an endpoint has lost state for a connection (RFC 9000 §10.3).
- Stream
Id - Identifier for a stream within a particular connection.
- Transport
Error - Transport-level errors occur when a peer violates the protocol specification
- Transport
Error Code - Transport-level error code
- VarInt
- An integer less than 2^62
- VarInt
Bounds Exceeded - Error returned when constructing a
VarIntfrom a value >= 2^62. value too large for varint encoding - VarInt
Decoder - Incremental, fragmentation-safe decoder for a single QUIC variable-length integer.
- Version
- A QUIC version number as it appears in long headers (RFC 8999 §5).
Enums§
- Dir
- Whether a stream communicates data in both directions or only from the initiator.
- EcnCodepoint
- Explicit congestion notification codepoint.
- Side
- Whether an endpoint was the initiator of a connection.
Constants§
- MAX_
CID_ SIZE - The longest connection ID QUIC version 1 carries, in bytes (RFC 9000 §17.2).
- MAX_
STREAM_ COUNT - Maximum number of streams that can be uniquely identified by a stream ID (RFC 9000 §2.1).
- RESET_
TOKEN_ SIZE - The longest stateless reset token, in bytes (RFC 9000 §10.3).