← Back

Module webtransport

struct WebTransportConfig

Source: webtransport.joule:22

fn default() -> Self

Source: webtransport.joule:42

enum SessionState

Source: webtransport.joule:58

struct WebTransportSession

WebTransport session

Source: webtransport.joule:70

fn connect(url: &str, config: WebTransportConfig) -> Result<Self, WebTransportError>

Source: webtransport.joule:92

fn perform_connect(

Source: webtransport.joule:124

fn state(&self) -> SessionState

Get session state

Source: webtransport.joule:147

fn is_connected(&self) -> bool

Check if connected

Source: webtransport.joule:152

fn url(&self) -> &str

Get session URL

Source: webtransport.joule:157

fn open_bidi_stream(&self) -> Result<WebTransportBidiStream, WebTransportError>

Source: webtransport.joule:167

fn accept_bidi_stream(&self) -> Result<Option<WebTransportBidiStream>, WebTransportError>

Source: webtransport.joule:187

fn open_uni_stream(&self) -> Result<WebTransportSendStream, WebTransportError>

Source: webtransport.joule:208

fn accept_uni_stream(&self) -> Result<Option<WebTransportRecvStream>, WebTransportError>

Source: webtransport.joule:223

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

Source: webtransport.joule:242

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

Source: webtransport.joule:257

fn max_datagram_size(&self) -> usize

Get maximum datagram size

Source: webtransport.joule:284

fn close(&self, code: u32, reason: &str) -> Result<(), WebTransportError>

Source: webtransport.joule:296

fn close_info(&self) -> Option<SessionCloseInfo>

Get close info if session was closed

Source: webtransport.joule:324

fn poll(&self) -> Result<Vec<SessionEvent>, WebTransportError>

Source: webtransport.joule:330

struct SessionCloseInfo

Source: webtransport.joule:362

enum SessionEvent

Source: webtransport.joule:369

struct WebTransportBidiStream

Source: webtransport.joule:386

struct WebTransportStreamInner

Source: webtransport.joule:390

fn new(quic_stream: QuicStream, session_id: u64) -> Self

Source: webtransport.joule:398

fn id(&self) -> StreamId

Get stream ID

Source: webtransport.joule:410

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

Source: webtransport.joule:416

fn write_all(&self, data: &[u8]) -> Result<(), WebTransportError>

Source: webtransport.joule:428

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

Source: webtransport.joule:439

fn read_exact(&self, buf: &mut [u8]) -> Result<(), WebTransportError>

Source: webtransport.joule:459

fn finish(&self) -> Result<(), WebTransportError>

Source: webtransport.joule:474

fn reset(&self, code: u32) -> Result<(), WebTransportError>

Source: webtransport.joule:482

fn stop_sending(&self, code: u32) -> Result<(), WebTransportError>

Source: webtransport.joule:491

struct WebTransportSendStream

Send-only WebTransport stream

Source: webtransport.joule:499

fn new(quic_stream: QuicStream, session_id: u64) -> Self

Source: webtransport.joule:506

fn id(&self) -> StreamId

Get stream ID

Source: webtransport.joule:515

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

Source: webtransport.joule:521

fn write_all(&mut self, data: &[u8]) -> Result<(), WebTransportError>

Source: webtransport.joule:531

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

Source: webtransport.joule:542

fn reset(&mut self, code: u32) -> Result<(), WebTransportError>

Source: webtransport.joule:549

struct WebTransportRecvStream

Receive-only WebTransport stream

Source: webtransport.joule:556

fn new(quic_stream: QuicStream, session_id: u64) -> Self

Source: webtransport.joule:563

fn id(&self) -> StreamId

Get stream ID

Source: webtransport.joule:572

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

Source: webtransport.joule:578

fn read_to_end(&mut self) -> Result<Vec<u8>, WebTransportError>

Source: webtransport.joule:596

fn stop_sending(&mut self, code: u32) -> Result<(), WebTransportError>

Source: webtransport.joule:614

struct WebTransportServer

WebTransport server

Source: webtransport.joule:625

struct ServerSession

Source: webtransport.joule:631

fn bind(addr: &str, config: WebTransportConfig) -> Result<Self, WebTransportError>

Source: webtransport.joule:640

fn accept(&mut self) -> Result<WebTransportSession, WebTransportError>

Source: webtransport.joule:652

fn wait_for_connect(&self, quic: &QuicConnection) -> Result<(u64, String), WebTransportError>

Source: webtransport.joule:676

fn send_connect_response(&self, quic: &QuicConnection, session_id: u64) -> Result<(), WebTransportError>

Source: webtransport.joule:682

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

Get local address

Source: webtransport.joule:689

enum CapsuleType

Source: webtransport.joule:700

fn build_close_frame(code: u32, reason: &str) -> Vec<u8>

Build CLOSE_WEBTRANSPORT_SESSION capsule

Source: webtransport.joule:708

struct ParsedUrl

Source: webtransport.joule:731

fn parse_webtransport_url(url: &str) -> Result<ParsedUrl, WebTransportError>

Source: webtransport.joule:737

fn build_connect_request(url: &ParsedUrl, headers: &Headers) -> Vec<u8>

Build HTTP/3 CONNECT request

Source: webtransport.joule:754

fn encode_varint(value: u64) -> Vec<u8>

Source: webtransport.joule:805

fn decode_varint(data: &[u8]) -> Result<(u64, usize), WebTransportError>

Source: webtransport.joule:834

fn varint_size(value: u64) -> usize

Source: webtransport.joule:854

enum WebTransportError

Source: webtransport.joule:866

fn from(e: QuicError) -> Self

Source: webtransport.joule:878

fn test_varint_encoding()

Source: webtransport.joule:892

fn test_varint_decoding()

Source: webtransport.joule:900

fn test_url_parsing()

Source: webtransport.joule:907

fn test_session_config()

Source: webtransport.joule:918

fn test_close_frame()

Source: webtransport.joule:925