qh3 2.0.3


pip install qh3

  Latest version

Released: Sep 02, 2026


Meta
Author: Jeremy Lainé
Maintainer: Ahmed R. TAHRI
Requires Python: >=3.7

Classifiers

Development Status
  • 5 - Production/Stable

Environment
  • Web Environment

Intended Audience
  • Developers

License
  • OSI Approved :: BSD License

Operating System
  • OS Independent

Programming Language
  • Python :: Implementation :: PyPy
  • Python :: Implementation :: CPython
  • Python
  • Python :: 3
  • Python :: 3.7
  • Python :: 3.8
  • Python :: 3.9
  • Python :: 3.10
  • Python :: 3.11
  • Python :: 3.12
  • Python :: 3.13
  • Python :: 3.14

Topic
  • Internet :: WWW/HTTP

PyPI version Supported Python versions License

qh3 is a fast QUIC and HTTP/3 implementation for Python, backed by a native Rust transport core. It is a maintained fork of aioquic and is not a drop-in replacement.

It provides:

  • a convenient asyncio client and server API;

  • sans-I/O QUIC and HTTP/3 APIs for custom integrations;

  • QUIC v1 and v2, TLS 1.3, IPv4 and IPv6, migration, QLOG, datagrams, server push, WebTransport streams, ECH, and post-quantum key exchange;

  • support for CPython and PyPy 3.7 or newer.

Installation

python -m pip install qh3

Documentation

Read the qh3 documentation for the getting-started guide, asyncio and sans-I/O integration guides, and the supported public API reference.

Only interfaces listed in the public API reference are covered by API compatibility guarantees. In particular, qh3._hazmat and underscore-prefixed modules are implementation details.

Complete examples are available in the examples directory. Applications looking for a complete HTTP client should generally use Niquests or urllib3.future.

Standards

License

qh3 is distributed under the BSD 3-Clause License.

Wheel compatibility matrix

Platform CPython >=3.7 (abi3) CPython (additional flags: t) 3.13 CPython (additional flags: t) 3.14 PyPy 3.7 (pp73) PyPy 3.8 (pp73) PyPy 3.9 (pp73) PyPy 3.10 (pp73) PyPy 3.11 (pp73)
macosx_10_12_universal2
macosx_10_12_x86_64
macosx_11_0_arm64
manylinux2014_aarch64
manylinux2014_armv7l
manylinux2014_i686
manylinux2014_ppc64
manylinux2014_ppc64le
manylinux2014_s390x
manylinux2014_x86_64
manylinux_2_17_aarch64
manylinux_2_17_armv7l
manylinux_2_17_i686
manylinux_2_17_ppc64
manylinux_2_17_ppc64le
manylinux_2_17_s390x
manylinux_2_17_x86_64
manylinux_2_39_riscv64
musllinux_1_1_aarch64
musllinux_1_1_armv7l
musllinux_1_1_i686
musllinux_1_1_riscv64
musllinux_1_1_x86_64
win32
win_amd64
win_arm64

Files in release

qh3-2.0.3-cp313-cp313t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (4.5MiB)
qh3-2.0.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.2MiB)
qh3-2.0.3-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.9MiB)
qh3-2.0.3-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl (2.1MiB)
qh3-2.0.3-cp313-cp313t-manylinux_2_17_ppc64.manylinux2014_ppc64.whl (2.1MiB)
qh3-2.0.3-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.1MiB)
qh3-2.0.3-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.1MiB)
qh3-2.0.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4MiB)
qh3-2.0.3-cp313-cp313t-manylinux_2_39_riscv64.whl (2.0MiB)
qh3-2.0.3-cp313-cp313t-musllinux_1_1_aarch64.whl (2.4MiB)
qh3-2.0.3-cp313-cp313t-musllinux_1_1_armv7l.whl (2.2MiB)
qh3-2.0.3-cp313-cp313t-musllinux_1_1_i686.whl (2.3MiB)
qh3-2.0.3-cp313-cp313t-musllinux_1_1_riscv64.whl (2.1MiB)
qh3-2.0.3-cp313-cp313t-musllinux_1_1_x86_64.whl (2.6MiB)
qh3-2.0.3-cp313-cp313t-win32.whl (1.9MiB)
qh3-2.0.3-cp313-cp313t-win_amd64.whl (2.2MiB)
qh3-2.0.3-cp313-cp313t-win_arm64.whl (2.0MiB)
qh3-2.0.3-cp314-cp314t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (4.5MiB)
qh3-2.0.3-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.2MiB)
qh3-2.0.3-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.9MiB)
qh3-2.0.3-cp314-cp314t-manylinux_2_17_i686.manylinux2014_i686.whl (2.1MiB)
qh3-2.0.3-cp314-cp314t-manylinux_2_17_ppc64.manylinux2014_ppc64.whl (2.1MiB)
qh3-2.0.3-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.1MiB)
qh3-2.0.3-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.1MiB)
qh3-2.0.3-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4MiB)
qh3-2.0.3-cp314-cp314t-manylinux_2_39_riscv64.whl (2.0MiB)
qh3-2.0.3-cp314-cp314t-musllinux_1_1_aarch64.whl (2.4MiB)
qh3-2.0.3-cp314-cp314t-musllinux_1_1_armv7l.whl (2.2MiB)
qh3-2.0.3-cp314-cp314t-musllinux_1_1_i686.whl (2.3MiB)
qh3-2.0.3-cp314-cp314t-musllinux_1_1_riscv64.whl (2.1MiB)
qh3-2.0.3-cp314-cp314t-musllinux_1_1_x86_64.whl (2.6MiB)
qh3-2.0.3-cp314-cp314t-win32.whl (1.9MiB)
qh3-2.0.3-cp314-cp314t-win_amd64.whl (2.2MiB)
qh3-2.0.3-cp314-cp314t-win_arm64.whl (2.0MiB)
qh3-2.0.3-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (4.5MiB)
qh3-2.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.2MiB)
qh3-2.0.3-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.9MiB)
qh3-2.0.3-cp37-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (2.1MiB)
qh3-2.0.3-cp37-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl (2.1MiB)
qh3-2.0.3-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.1MiB)
qh3-2.0.3-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.1MiB)
qh3-2.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4MiB)
qh3-2.0.3-cp37-abi3-manylinux_2_39_riscv64.whl (2.0MiB)
qh3-2.0.3-cp37-abi3-musllinux_1_1_aarch64.whl (2.4MiB)
qh3-2.0.3-cp37-abi3-musllinux_1_1_armv7l.whl (2.2MiB)
qh3-2.0.3-cp37-abi3-musllinux_1_1_i686.whl (2.3MiB)
qh3-2.0.3-cp37-abi3-musllinux_1_1_riscv64.whl (2.1MiB)
qh3-2.0.3-cp37-abi3-musllinux_1_1_x86_64.whl (2.6MiB)
qh3-2.0.3-cp37-abi3-win32.whl (1.9MiB)
qh3-2.0.3-cp37-abi3-win_amd64.whl (2.2MiB)
qh3-2.0.3-cp37-abi3-win_arm64.whl (2.0MiB)
qh3-2.0.3-pp310-pypy310_pp73-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (4.5MiB)
qh3-2.0.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.2MiB)
qh3-2.0.3-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.9MiB)
qh3-2.0.3-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (2.1MiB)
qh3-2.0.3-pp310-pypy310_pp73-manylinux_2_17_ppc64.manylinux2014_ppc64.whl (2.1MiB)
qh3-2.0.3-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.1MiB)
qh3-2.0.3-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.1MiB)
qh3-2.0.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4MiB)
qh3-2.0.3-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl (2.4MiB)
qh3-2.0.3-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl (2.2MiB)
qh3-2.0.3-pp310-pypy310_pp73-musllinux_1_1_i686.whl (2.3MiB)
qh3-2.0.3-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl (2.6MiB)
qh3-2.0.3-pp310-pypy310_pp73-win_amd64.whl (2.2MiB)
qh3-2.0.3-pp311-pypy311_pp73-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (4.5MiB)
qh3-2.0.3-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.2MiB)
qh3-2.0.3-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.9MiB)
qh3-2.0.3-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (2.1MiB)
qh3-2.0.3-pp311-pypy311_pp73-manylinux_2_17_ppc64.manylinux2014_ppc64.whl (2.1MiB)
qh3-2.0.3-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.1MiB)
qh3-2.0.3-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.1MiB)
qh3-2.0.3-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4MiB)
qh3-2.0.3-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl (2.4MiB)
qh3-2.0.3-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl (2.2MiB)
qh3-2.0.3-pp311-pypy311_pp73-musllinux_1_1_i686.whl (2.3MiB)
qh3-2.0.3-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl (2.6MiB)
qh3-2.0.3-pp311-pypy311_pp73-win_amd64.whl (2.2MiB)
qh3-2.0.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.2MiB)
qh3-2.0.3-pp37-pypy37_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.9MiB)
qh3-2.0.3-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (2.1MiB)
qh3-2.0.3-pp37-pypy37_pp73-manylinux_2_17_ppc64.manylinux2014_ppc64.whl (2.1MiB)
qh3-2.0.3-pp37-pypy37_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.1MiB)
qh3-2.0.3-pp37-pypy37_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.1MiB)
qh3-2.0.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4MiB)
qh3-2.0.3-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl (2.4MiB)
qh3-2.0.3-pp37-pypy37_pp73-musllinux_1_1_armv7l.whl (2.2MiB)
qh3-2.0.3-pp37-pypy37_pp73-musllinux_1_1_i686.whl (2.3MiB)
qh3-2.0.3-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl (2.6MiB)
qh3-2.0.3-pp37-pypy37_pp73-win_amd64.whl (2.2MiB)
qh3-2.0.3-pp38-pypy38_pp73-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (4.5MiB)
qh3-2.0.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.2MiB)
qh3-2.0.3-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.9MiB)
qh3-2.0.3-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (2.1MiB)
qh3-2.0.3-pp38-pypy38_pp73-manylinux_2_17_ppc64.manylinux2014_ppc64.whl (2.1MiB)
qh3-2.0.3-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.1MiB)
qh3-2.0.3-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.1MiB)
qh3-2.0.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4MiB)
qh3-2.0.3-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl (2.4MiB)
qh3-2.0.3-pp38-pypy38_pp73-musllinux_1_1_armv7l.whl (2.2MiB)
qh3-2.0.3-pp38-pypy38_pp73-musllinux_1_1_i686.whl (2.3MiB)
qh3-2.0.3-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl (2.6MiB)
qh3-2.0.3-pp38-pypy38_pp73-win_amd64.whl (2.2MiB)
qh3-2.0.3-pp39-pypy39_pp73-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (4.5MiB)
qh3-2.0.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.2MiB)
qh3-2.0.3-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.9MiB)
qh3-2.0.3-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (2.1MiB)
qh3-2.0.3-pp39-pypy39_pp73-manylinux_2_17_ppc64.manylinux2014_ppc64.whl (2.1MiB)
qh3-2.0.3-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.1MiB)
qh3-2.0.3-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.1MiB)
qh3-2.0.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4MiB)
qh3-2.0.3-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl (2.4MiB)
qh3-2.0.3-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl (2.2MiB)
qh3-2.0.3-pp39-pypy39_pp73-musllinux_1_1_i686.whl (2.3MiB)
qh3-2.0.3-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl (2.6MiB)
qh3-2.0.3-pp39-pypy39_pp73-win_amd64.whl (2.2MiB)
qh3-2.0.3.tar.gz (366.7KiB)
No dependencies