QuicHttp3.Session (elixir_quic_http3 v0.16.7)

Copy Markdown View Source

Caller-driven HTTP/3 session with resumable QUIC admission.

Mutating failures return the advanced session. Call resume/1 to reconcile an unknown operation, or retry a definitely blocked operation after credit changes. Unknown operations are never replayed, including after result-cache eviction. Native query calls and DNS retain their transport timeout bounds; the session deadline is an admission/reconciliation budget, not a shorter wall-clock bound.

Summary

Types

failure()

@type failure() ::
  {:error, t(), term()} | {:blocked, t(), term()} | {:unknown, t(), reference()}

t()

@type t() :: %QuicHttp3.Session{
  aborted_operation: term(),
  connection: term(),
  continuations: term(),
  control: term(),
  control_stream: term(),
  max_encoded_headers: term(),
  max_fields: term(),
  max_frame: term(),
  max_header_bytes: term(),
  max_retained_bytes: term(),
  next_request: term(),
  next_stream_id: term(),
  open?: term(),
  peer_streams: term(),
  pending: term(),
  qpack_streams: term(),
  requests: term(),
  retired: term(),
  runnable: term(),
  timeout: term(),
  transport: term(),
  work: term()
}

Functions

abort(session)

Terminate transport resources without replaying pending application work.

This does not prove an indeterminate request was unsent. The returned session retains its abandoned operation identity in aborted_operation.

cancel(session, ref)

close(session)

connect(session, remote, port, opts)

new(opts \\ [])

open(session)

poll(session, max, opts \\ [])

ready(session)

request(session, fields, body, opts)

reset_send(session, ref)

resume(session)

resume(session, continuation)

send_data(session, ref, bytes, fin, opts)

suspend_blocked(session)