HTTP.WebTransport (http_web_transport v0.10.0)
View SourceBrowser-like WebTransport client API for Elixir.
This module implements the public API shape and lifecycle management for
WebTransport sessions. Browser-compatible network interoperability requires a
backend that speaks WebTransport over HTTP/3; the default backend is currently
a placeholder that reports :quic_backend_unavailable.
Summary
Types
@type congestion_control() :: :default | :throughput | :low_latency
@type reliability() :: String.t()
@type state() :: :connecting | :connected | :draining | :closed | :failed
Functions
@spec await_closed(t(), timeout()) :: {:ok, HTTP.WebTransport.CloseInfo.t()} | {:error, term()}
@spec closed(t()) :: HTTP.WebTransport.Promise.t()
@spec congestion_control(t()) :: congestion_control()
@spec create_bidirectional_stream(t(), keyword() | map()) :: {:ok, HTTP.WebTransport.BidirectionalStream.t()} | {:error, term()}
@spec create_send_group(t()) :: HTTP.WebTransport.SendGroup.t()
@spec create_unidirectional_stream(t(), keyword() | map()) :: {:ok, HTTP.WebTransport.SendStream.t()} | {:error, term()}
@spec datagrams(t()) :: HTTP.WebTransport.DatagramDuplexStream.t()
@spec draining(t()) :: HTTP.WebTransport.Promise.t()
@spec get_stats(t()) :: {:ok, HTTP.WebTransport.Stats.t()} | {:error, term()}
@spec incoming_bidirectional_streams(t()) :: HTTP.WebTransport.StreamQueue.t()
@spec incoming_unidirectional_streams(t()) :: HTTP.WebTransport.StreamQueue.t()
@spec ready(t()) :: HTTP.WebTransport.Promise.t()
@spec reliability(t()) :: reliability()
@spec supports_reliable_only?() :: false