qh3¶
QUIC and HTTP/3 for Python, with a native Rust transport core.
qh3 is a maintained fork of aioquic for applications that need a focused, high-performance QUIC and HTTP/3 implementation. It provides:
- a convenient
asyncioclient and server API; - sans-I/O QUIC and HTTP/3 APIs for custom event loops and transports;
- QUIC v1 and v2, TLS 1.3, IPv4 and IPv6, connection migration, QLOG, datagrams, server push, WebTransport streams, ECH, and post-quantum key exchange;
- native packet processing and UDP batching implemented in Rust.
Install¶
qh3 supports CPython and PyPy 3.7 or newer.
Choose an API¶
| Goal | Start here |
|---|---|
Open or serve QUIC connections with asyncio |
Asyncio guide |
| Integrate QUIC into another I/O framework | Sans-I/O guide |
| Send HTTP/3 headers, data, or datagrams | HTTP/3 API |
| Configure TLS, certificates, limits, or versions | Configuration |
API policy¶
Only interfaces listed in the public API reference are part of
the supported API. In particular, qh3._hazmat and underscore-prefixed modules
are implementation details and may change without notice.
qh3 is low-level infrastructure. Applications looking for a complete HTTP client should generally use Niquests or urllib3.future.