1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
//! QUIC v1 (RFC 9000) — transport layer over UDP, secured by TLS 1.3 keys
//! per RFC 9001. Includes RFC 9002 loss recovery + congestion control and
//! RFC 9221 unreliable datagram extension.
//!
//! This module is sans-I/O: the engine takes wire datagrams via `feed`
//! and produces wire datagrams via `pop`. The host wires it to a
//! `UdpSocket`.
//!
//! The [`QuicConnection`] state machine drives the full v1 transport over
//! the sans-I/O feed/pop seam: varint / packet-number / frame codecs and
//! transport parameters, per-direction Initial + Handshake + 1-RTT keys
//! with header protection (RFC 9001 §5), the TLS-QUIC seam (`QuicHooks`),
//! per-level CRYPTO reassembly, ACK emission, RFC 9002 loss recovery with
//! NewReno congestion control, streams with flow control, Retry + address
//! validation, connection-ID rotation, key update, and RFC 9221 unreliable
//! DATAGRAMs, and the RFC 9000 §10.1 idle timeout. Out of scope: 0-RTT
//! emission, connection migration, HTTP/3, and stateless-reset emission.
// QUIC v1 is shipped; the server direction interops with OpenSSL 3.5's QUIC
// client, with several follow-ups still open (see the project notes). A
// number of parsed-but-not-yet-consumed packet/header
// fields, ACK/version-negotiation codec helpers, ECN counters, PnSet query
// methods, and reserved RFC 9000 stream-state variants are intentionally
// retained for that pending work and for protocol-completeness/auditability
// against the RFCs. Rather than scatter per-item `#[allow]`s, dead_code is
// suppressed module-wide here; revisit and tighten once interop work lands.
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub use ;
pub use EcnCodepoint;
pub use peek_initial_sni;
// Re-export so callers can name the peek's return type from `quic` directly.
pub use crateClientHelloInfo;
pub use QuicServer;
pub use StreamId;
pub use TransportParameters;