NAME
Unblock::HTTP3::Connection - shared HTTP/3 connection implementation
DESCRIPTION
This package contains the shared implementation inherited by Unblock::HTTP3::Client and Unblock::HTTP3::Server.
Applications should construct one of those public classes with new(). Unblock::HTTP3::Connection has no public constructor.
One Client or Server wraps one existing Net::QUIC::Connection. Unblock::HTTP3 owns HTTP/3 state. Net::QUIC owns QUIC and TLS. The caller owns the UDP socket, timer, and event loop.
COMMON OPTIONS
quic is required.
Common constructor options include:
send_buffer_limit
max_field_section_size
max_buffered_body_bytes
max_streaming_body_bytes
receive_body
qpack_max_table_capacity
qpack_blocked_streams
enable_http_datagrams
extension_settings
on_extension_settings
extension_stream_handlers
Server-specific options include:
enable_extended_connect
origins
datagram_request
quic_max_bidi_streams
remembered_local_settings
on_request
on_body
on_request_end
on_error
Client-specific options include remembered_peer_settings.
COMMON METHODS
start() starts HTTP/3 processing.
role() returns client or server.
quic() returns the wrapped Net::QUIC connection.
started(), failed(), error(), and error_code() expose connection state.
next_transaction() and next_informational() provide the optional pull interface.
Settings, extension streams, HTTP Datagrams, ORIGIN, graceful shutdown, and 0-RTT state remain available through the existing HTTP/3-specific methods.
CLIENT REQUESTS
"request" in Unblock::HTTP3::Client accepts the Uniform HTTP request contract.
Useful request options include:
stream_body
receive_body
datagrams
early_data
on_informational
on_response
on_body
on_complete
on_error
on_drain
stream_body => 1 enables the common write() and end() Transaction body API. A hash reference remains available for advanced Body::Stream configuration.
SEE ALSO
Unblock::HTTP3, Unblock::HTTP3::Client, Unblock::HTTP3::Server, Unblock::HTTP3::Transaction
LICENSE
MIT License.