← Back

Module quic

struct Version(pub u32);

Source: quic.joule:18

const V1: Version

QUIC version 1 (RFC 9000)

Source: quic.joule:22

const V2: Version

QUIC version 2 (RFC 9369)

Source: quic.joule:24

const NEGOTIATION: Version

Version negotiation

Source: quic.joule:26

fn is_supported(&self) -> bool

Source: quic.joule:28

struct ConnectionId

Source: quic.joule:39

fn new(bytes: Vec<u8>) -> Self

Source: quic.joule:44

fn empty() -> Self

Source: quic.joule:48

fn random(len: usize) -> Self

Source: quic.joule:52

fn len(&self) -> usize

Source: quic.joule:61

fn is_empty(&self) -> bool

Source: quic.joule:65

struct StreamId(pub u64);

Source: quic.joule:76

fn is_client_initiated(&self) -> bool

Check if client-initiated

Source: quic.joule:80

fn is_server_initiated(&self) -> bool

Check if server-initiated

Source: quic.joule:85

fn is_bidirectional(&self) -> bool

Check if bidirectional

Source: quic.joule:90

fn is_unidirectional(&self) -> bool

Check if unidirectional

Source: quic.joule:95

fn client_bidi(n: u64) -> Self

Create client-initiated bidirectional stream ID

Source: quic.joule:100

fn server_bidi(n: u64) -> Self

Create server-initiated bidirectional stream ID

Source: quic.joule:105

fn client_uni(n: u64) -> Self

Create client-initiated unidirectional stream ID

Source: quic.joule:110

fn server_uni(n: u64) -> Self

Create server-initiated unidirectional stream ID

Source: quic.joule:115

struct TransportParameters

Source: quic.joule:126

fn default() -> Self

Source: quic.joule:156

struct QuicConfig

Source: quic.joule:181

fn default() -> Self

Source: quic.joule:199

enum CongestionControl

Source: quic.joule:214

enum ConnectionState

Source: quic.joule:231

enum CloseReason

Source: quic.joule:248

fn code(&self) -> u64

Source: quic.joule:282

enum StreamState

Source: quic.joule:309

struct QuicStream

QUIC stream

Source: quic.joule:325

fn new(id: StreamId, conn: Arc<Mutex<ConnectionInner>>, max_send_data: u64) -> Self

Source: quic.joule:351

fn id(&self) -> StreamId

Get stream ID

Source: quic.joule:368

fn can_send(&self) -> bool

Check if stream can send

Source: quic.joule:373

fn can_recv(&self) -> bool

Check if stream can receive

Source: quic.joule:379

fn write(&mut self, data: &[u8]) -> Result<usize, QuicError>

Source: quic.joule:386

fn read(&mut self, buf: &mut [u8]) -> Result<usize, QuicError>

Source: quic.joule:406

fn finish(&mut self) -> Result<(), QuicError>

Source: quic.joule:424

fn reset(&mut self, error_code: u64) -> Result<(), QuicError>

Source: quic.joule:434

fn stop_sending(&mut self, error_code: u64) -> Result<(), QuicError>

Source: quic.joule:442

fn is_finished(&self) -> bool

Check if stream is finished (both directions closed)

Source: quic.joule:448

struct ConnectionInner

Internal connection state

Source: quic.joule:459

struct QuicConnection

QUIC connection

Source: quic.joule:499

fn connect(

Source: quic.joule:507

fn perform_handshake(&self, server_name: &str, config: &QuicConfig) -> Result<(), QuicError>

Source: quic.joule:550

fn build_initial_packet(&self, inner: &ConnectionInner) -> Result<Vec<u8>, QuicError>

Source: quic.joule:575

fn process_handshake_packet(

Source: quic.joule:601

fn state(&self) -> ConnectionState

Get connection state

Source: quic.joule:617

fn is_established(&self) -> bool

Check if connection is established

Source: quic.joule:622

fn open_stream(&self) -> Result<QuicStream, QuicError>

Source: quic.joule:628

fn open_uni_stream(&self) -> Result<QuicStream, QuicError>

Source: quic.joule:650

fn accept_stream(&self) -> Result<Option<QuicStream>, QuicError>

Source: quic.joule:672

fn send_datagram(&self, data: &[u8]) -> Result<(), QuicError>

Source: quic.joule:686

fn recv_datagram(&self) -> Result<Option<Vec<u8>>, QuicError>

Source: quic.joule:712

fn close(&self, reason: CloseReason) -> Result<(), QuicError>

Source: quic.joule:724

fn rtt(&self) -> Duration

Get RTT estimate

Source: quic.joule:741

fn local_addr(&self) -> Result<SocketAddr, QuicError>

Get local address

Source: quic.joule:746

fn peer_addr(&self) -> SocketAddr

Get peer address

Source: quic.joule:751

fn stats(&self) -> ConnectionStats

Get connection statistics

Source: quic.joule:756

fn poll(&self) -> Result<(), QuicError>

Source: quic.joule:768

fn process_packet(&self, packet: &[u8]) -> Result<(), QuicError>

Source: quic.joule:788

fn flush_pending(&self) -> Result<(), QuicError>

Source: quic.joule:794

struct ConnectionStats

Source: quic.joule:803

struct QuicEndpoint

QUIC server endpoint

Source: quic.joule:815

fn bind(addr: &str, config: QuicConfig) -> Result<Self, QuicError>

Source: quic.joule:824

fn accept(&mut self) -> Result<QuicConnection, QuicError>

Source: quic.joule:836

fn extract_cid(&self, packet: &[u8]) -> Option<ConnectionId>

Source: quic.joule:858

fn is_initial_packet(&self, packet: &[u8]) -> bool

Source: quic.joule:874

fn handle_initial(

Source: quic.joule:883

fn local_addr(&self) -> Result<SocketAddr, QuicError>

Get local address

Source: quic.joule:929

struct SessionTicket

Source: quic.joule:940

fn is_valid(&self) -> bool

Check if ticket is valid

Source: quic.joule:953

struct EarlyData

0-RTT data

Source: quic.joule:959

enum QuicError

Source: quic.joule:971

fn from(e: std::io::Error) -> Self

Source: quic.joule:987

fn from(e: super::udp::UdpError) -> Self

Source: quic.joule:993

enum FrameType

Source: quic.joule:1005

fn test_stream_id_types()

Source: quic.joule:1041

fn test_connection_id()

Source: quic.joule:1052

fn test_version()

Source: quic.joule:1062

fn test_transport_parameters()

Source: quic.joule:1069

fn test_close_reason_code()

Source: quic.joule:1076