HTTP/3 API¶
The HTTP/3 API performs no I/O on its own, leaving this to the API user. This allows you to integrate HTTP/3 in any Python application, regardless of the concurrency model you are using.
Connection¶
- class aioquic.h3.connection.H3Connection(quic, enable_webtransport=False)¶
A low-level HTTP/3 connection object.
- Parameters
quic (
QuicConnection
) – AQuicConnection
instance.
- create_webtransport_stream(session_id, is_unidirectional=False)¶
Create a WebTransport stream and return the stream ID.
- handle_event(event)¶
Handle a QUIC event and return a list of HTTP events.
- send_data(stream_id, data, end_stream)¶
Send data on the given stream.
To retrieve datagram which need to be sent over the network call the QUIC connection’s
datagrams_to_send()
method.
- send_datagram(flow_id, data)¶
Send a datagram for the specified flow.
- send_headers(stream_id, headers, end_stream=False)¶
Send headers on the given stream.
To retrieve datagram which need to be sent over the network call the QUIC connection’s
datagrams_to_send()
method.
- send_push_promise(stream_id, headers)¶
Send a push promise related to the specified stream.
Returns the stream ID on which headers and data can be sent.
Events¶
- class aioquic.h3.events.H3Event¶
Base class for HTTP/3 events.
- class aioquic.h3.events.DatagramReceived(data, flow_id)¶
The DatagramReceived is fired whenever a datagram is received from the the remote peer.
- class aioquic.h3.events.DataReceived(data, stream_id, stream_ended, push_id=None)¶
The DataReceived event is fired whenever data is received on a stream from the remote peer.
- class aioquic.h3.events.HeadersReceived(headers, stream_id, stream_ended, push_id=None)¶
The HeadersReceived event is fired whenever headers are received.
- class aioquic.h3.events.PushPromiseReceived(headers, push_id, stream_id)¶
The PushedStreamReceived event is fired whenever a pushed stream has been received from the remote peer.
- class aioquic.h3.events.WebTransportStreamDataReceived(data, stream_id, stream_ended, session_id)¶
The WebTransportStreamDataReceived is fired whenever data is received for a WebTransport stream.
Exceptions¶
- class aioquic.h3.exceptions.H3Error¶
Base class for HTTP/3 exceptions.
- class aioquic.h3.exceptions.NoAvailablePushIDError¶
There are no available push IDs left.