Skip to main content

aioquic

License Version Python versions Tests Coverage Documentation

What is aioquic?

aioquic is a library for the QUIC network protocol in Python. It features a minimal TLS 1.3 implementation, a QUIC stack and an HTTP/3 stack.

aioquic is used by Python opensource projects such as dnspython, hypercorn, mitmproxy and the Web Platform Tests cross-browser test suite. It has also been used extensively in research papers about QUIC.

To learn more about aioquic please read the documentation.

Why should I use aioquic?

aioquic has been designed to be embedded into Python client and server libraries wishing to support QUIC and / or HTTP/3. The goal is to provide a common codebase for Python libraries in the hope of avoiding duplicated effort.

Both the QUIC and the HTTP/3 APIs follow the “bring your own I/O” pattern, leaving actual I/O operations to the API user. This approach has a number of advantages including making the code testable and allowing integration with different concurrency models.

A lot of effort has gone into writing an extensive test suite for the aioquic code to ensure best-in-class code quality, and it is regularly tested for interoperability against other QUIC implementations.

Features

  • minimal TLS 1.3 implementation conforming with RFC 8446

  • QUIC stack conforming with RFC 9000 (QUIC v1) and RFC 9369 (QUIC v2)
    • IPv4 and IPv6 support

    • connection migration and NAT rebinding

    • logging TLS traffic secrets

    • logging QUIC events in QLOG format

    • version negotiation conforming with RFC 9368

  • HTTP/3 stack conforming with RFC 9114
    • server push support

    • WebSocket bootstrapping conforming with RFC 9220

    • datagram support conforming with RFC 9297

Installing

The easiest way to install aioquic is to run:

pip install aioquic

Building from source

If there are no wheels for your system or if you wish to build aioquic from source you will need a C compiler and the Python development headers.

On Debian/Ubuntu run:

sudo apt install python3-dev

Running the examples

aioquic comes with a number of examples illustrating various QUIC usecases.

You can browse these examples here: https://github.com/aiortc/aioquic/tree/main/examples

License

aioquic is released under the BSD license.

Metadata

Release files for aioquic 1.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aioquic 1.7.0
File Size Uploaded
aioquic-1.7.0.tar.gz 227.5 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for aioquic 1.7.0
File
aioquic-1.7.0-cp311-abi3-win_arm64.whl CPython 3.11 abi3 Windows ARM64 Details
aioquic-1.7.0-cp311-abi3-win_amd64.whl CPython 3.11 abi3 Windows x86-64 Details
aioquic-1.7.0-cp311-abi3-win32.whl CPython 3.11 abi3 Windows x86-32 Details
aioquic-1.7.0-cp311-abi3-musllinux_1_2_x86_64.whl CPython 3.11 abi3 Linux musl 1.2+ x86-64 Details
aioquic-1.7.0-cp311-abi3-musllinux_1_2_i686.whl CPython 3.11 abi3 Linux musl 1.2+ x86-32 Details
aioquic-1.7.0-cp311-abi3-musllinux_1_2_aarch64.whl CPython 3.11 abi3 Linux musl 1.2+ ARM64 Details
aioquic-1.7.0-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 abi3 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
aioquic-1.7.0-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 abi3 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
aioquic-1.7.0-cp311-abi3-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl CPython 3.11 abi3 Linux glibc 2.5+ x86-32, Linux glibc 2.28+ x86-32 Details
aioquic-1.7.0-cp311-abi3-macosx_11_0_arm64.whl CPython 3.11 abi3 macOS 11.0+ ARM64 Details
aioquic-1.7.0-cp311-abi3-macosx_10_9_x86_64.whl CPython 3.11 abi3 macOS 10.9+ x86-64 Details

Total release size: 1.5 MB

Release files / aioquic-1.7.0.tar.gz

Download URL aioquic-1.7.0.tar.gz
Size 227.5 kB
Tags Source
SHA-256 checksum
How to use checksums
3b134ae8b2d8257d1b91f74affe6d9194b95a500286ed6eca1c054ffdb05ad08
BLAKE2b-256 checksum
How to use checksums
ec33555f1ea1ff5f355ffad9e8e47d499a9b352a3fcef9cc3598011d8b7c197f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / aioquic-1.7.0-cp311-abi3-win_arm64.whl

Download URL aioquic-1.7.0-cp311-abi3-win_arm64.whl
Size 115.8 kB
Tags CPython 3.11 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
9ef0d5d7b0bb9d1cd473304c5942cd14266c65592a5661387976530379fd69a1
BLAKE2b-256 checksum
How to use checksums
ddb7288b17aca98f5997a13b88769df684735559e3bfaa1214b3056faaf370fa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / aioquic-1.7.0-cp311-abi3-win_amd64.whl

Download URL aioquic-1.7.0-cp311-abi3-win_amd64.whl
Size 116.1 kB
Tags CPython 3.11 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
c54021fedb6e9210cf55d8fd970440617768c50809cc40f327c2f8532c050387
BLAKE2b-256 checksum
How to use checksums
073a47302f69572805e59e33156764ad0234fbc11da4864213d6022533d0d5d3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / aioquic-1.7.0-cp311-abi3-win32.whl

Download URL aioquic-1.7.0-cp311-abi3-win32.whl
Size 115.6 kB
Tags CPython 3.11 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
23d85ad4019fdf6c707c23d480c8c4d3165111177bab8683e92294d80e601084
BLAKE2b-256 checksum
How to use checksums
aec378a414f6e732aae8e9b931117fe96a72c03fc0c4f4284ee4788a6b0aac33
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / aioquic-1.7.0-cp311-abi3-musllinux_1_2_x86_64.whl

Download URL aioquic-1.7.0-cp311-abi3-musllinux_1_2_x86_64.whl
Size 122.3 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
625d225c257fdf55cb1c26da6d4c1f99f6b568d1096558487c8e3b09fcaf4f65
BLAKE2b-256 checksum
How to use checksums
a584d534dc316f4af304e494091c265067066e1e852985c1ed2b43c857bafb51
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / aioquic-1.7.0-cp311-abi3-musllinux_1_2_i686.whl

Download URL aioquic-1.7.0-cp311-abi3-musllinux_1_2_i686.whl
Size 121.6 kB
Tags CPython 3.11 Linux musl 1.2+ x86-32 abi3
SHA-256 checksum
How to use checksums
6541e161058e6bd6ee45c67411c041fbd3c916ccdc0773e0fcdbee783709f4d0
BLAKE2b-256 checksum
How to use checksums
b008ed716bc2cb52e1934dafda568750cf4922024624f5ea2f708e7f21825e3e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / aioquic-1.7.0-cp311-abi3-musllinux_1_2_aarch64.whl

Download URL aioquic-1.7.0-cp311-abi3-musllinux_1_2_aarch64.whl
Size 123.2 kB
Tags CPython 3.11 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
29837f88fcc5aaec85f0d011a6ede057fb0b4fd3b06969759b0960ebfd672d7d
BLAKE2b-256 checksum
How to use checksums
258011e63b544902f93d4a68c9dc8c1205cce84dd28c71fd86c1b80a39340aef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / aioquic-1.7.0-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL aioquic-1.7.0-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 122.1 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
db492168e068d05483ada650d4dbecd9ad33b3a34bbaad22cfd5b292bbb212f5
BLAKE2b-256 checksum
How to use checksums
815ca132b9b2bb14404e6537ebb430b4ba5abb4f4685e25523f267b19c90796b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / aioquic-1.7.0-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL aioquic-1.7.0-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 123.5 kB
Tags CPython 3.11 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
d1aa6945b9e7ef8a3cdac06bddf116632fc9eaa3b1e6b3aff51119600d426cd3
BLAKE2b-256 checksum
How to use checksums
a632e1dc1020582aae723ab70aa65d507dbe688cf873792f1388a9add9ada310
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / aioquic-1.7.0-cp311-abi3-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl

Download URL aioquic-1.7.0-cp311-abi3-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Size 121.0 kB
Tags CPython 3.11 Linux glibc 2.28+ x86-32 Linux glibc 2.5+ x86-32 abi3
SHA-256 checksum
How to use checksums
a00fbb5f0d608b02cf0b8d3de702afa2096a87907de004b949235c09dabd539a
BLAKE2b-256 checksum
How to use checksums
7be52f2a9d9ef07f7406a029e4725a887f27eb386c4a7c608511572af37b1b5a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / aioquic-1.7.0-cp311-abi3-macosx_11_0_arm64.whl

Download URL aioquic-1.7.0-cp311-abi3-macosx_11_0_arm64.whl
Size 113.9 kB
Tags CPython 3.11 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7a1c328ca75950dee03bef2c931440e779455eb95e8d0b76950b57f12bd738b8
BLAKE2b-256 checksum
How to use checksums
3dd2b30708baffd16a772486fb47545a854561bd1a30ec1bee582865c6048276
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / aioquic-1.7.0-cp311-abi3-macosx_10_9_x86_64.whl

Download URL aioquic-1.7.0-cp311-abi3-macosx_10_9_x86_64.whl
Size 113.5 kB
Tags CPython 3.11 abi3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
33b95ca1eb414d4c1931d313a3ccb8bf4efaaebe9f30852da7d68bc1ebacc2c3
BLAKE2b-256 checksum
How to use checksums
a283c5e9be49100af2a8b9be65508dc4bbe23a127fcf86faa200ea6264bbf552
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

1.7.0 This release

12 release files

1.6.1

12 release files

1.6.0

12 release files

1.5.0

12 release files

1.4.0

12 release files

1.3.0

12 release files

1.1.0

26 release files

1.0.0

23 release files

0.9.7

27 release files

0.9.6

19 release files

0.9.5

19 release files

0.9.4

19 release files

0.9.3

19 release files

0.9.0

19 release files

0.8.8

19 release files

0.8.7

19 release files

0.8.6

1 release file

0.8.5

1 release file

0.8.4

1 release file

0.8.3

1 release file

0.8.2

1 release file

0.8.1

1 release file

0.8.0

1 release file

0.7.1

1 release file

0.7.0

1 release file

0.6.0

1 release file

0.5.0

1 release file

0.4.0

1 release file

0.3.0

1 release file

0.2.0

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page