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.6.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.6.0
File Size Uploaded
aioquic-1.6.0.tar.gz 201.8 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for aioquic 1.6.0
File
aioquic-1.6.0-cp311-abi3-win_arm64.whl CPython 3.11 abi3 Windows ARM64 Details
aioquic-1.6.0-cp311-abi3-win_amd64.whl CPython 3.11 abi3 Windows x86-64 Details
aioquic-1.6.0-cp311-abi3-win32.whl CPython 3.11 abi3 Windows x86-32 Details
aioquic-1.6.0-cp311-abi3-musllinux_1_2_x86_64.whl CPython 3.11 abi3 Linux musl 1.2+ x86-64 Details
aioquic-1.6.0-cp311-abi3-musllinux_1_2_i686.whl CPython 3.11 abi3 Linux musl 1.2+ x86-32 Details
aioquic-1.6.0-cp311-abi3-musllinux_1_2_aarch64.whl CPython 3.11 abi3 Linux musl 1.2+ ARM64 Details
aioquic-1.6.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.6.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.6.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.6.0-cp311-abi3-macosx_11_0_arm64.whl CPython 3.11 abi3 macOS 11.0+ ARM64 Details
aioquic-1.6.0-cp311-abi3-macosx_10_9_x86_64.whl CPython 3.11 abi3 macOS 10.9+ x86-64 Details

Total release size: 1.4 MB

Release files / aioquic-1.6.0.tar.gz

Download URL aioquic-1.6.0.tar.gz
Size 201.8 kB
Tags Source
SHA-256 checksum
How to use checksums
d8fcd66abcfeb431e8dbfad16d3324b268606138a67440e3173912be73c80aeb
BLAKE2b-256 checksum
How to use checksums
a94841aa1b07fc52b2225a611ff35240bd7a2c70cc909e4329b413e0aa4593fc
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.6.0-cp311-abi3-win_arm64.whl

Download URL aioquic-1.6.0-cp311-abi3-win_arm64.whl
Size 107.2 kB
Tags CPython 3.11 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
d69cd23805a10b0ca76423de22595d924a07c1e95ae1ff80d3d6755afa7ddef1
BLAKE2b-256 checksum
How to use checksums
72fea9e425f296172fca5a099e0cc0ad32c8cdb0bd76b0c5f74e84c8d1d80928
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.6.0-cp311-abi3-win_amd64.whl

Download URL aioquic-1.6.0-cp311-abi3-win_amd64.whl
Size 107.4 kB
Tags CPython 3.11 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
b730f64d8800deb9d0d7f7436bcc5c9cb4122a4d7bef12d4381dd88fe5a95a41
BLAKE2b-256 checksum
How to use checksums
a7aa2817ab910b39d73acd9c646ba07d85c2c3f6bd2bbb1dbd9f7f4a00e692cf
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.6.0-cp311-abi3-win32.whl

Download URL aioquic-1.6.0-cp311-abi3-win32.whl
Size 107.0 kB
Tags CPython 3.11 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
26735b3c5c9c66da480521d3f89bee847e9e5c55e16e0d73d2477b060e8de0b5
BLAKE2b-256 checksum
How to use checksums
20bb3bf705331093bffb9b855b2e7676b5af908143c6ac812bbc8cb2747c245c
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.6.0-cp311-abi3-musllinux_1_2_x86_64.whl

Download URL aioquic-1.6.0-cp311-abi3-musllinux_1_2_x86_64.whl
Size 113.7 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
7a519d2c1871b9dfc8bfa115a31ebcd9785f35ddfdd9c64a87c588441279f775
BLAKE2b-256 checksum
How to use checksums
db8b192505a2cdf07394691ac8d62e517cb8c0f58744b3ad23a5dbd8e0b6e2c8
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.6.0-cp311-abi3-musllinux_1_2_i686.whl

Download URL aioquic-1.6.0-cp311-abi3-musllinux_1_2_i686.whl
Size 113.0 kB
Tags CPython 3.11 Linux musl 1.2+ x86-32 abi3
SHA-256 checksum
How to use checksums
ef4928c1bfe14be8d6a12746aa41d8ae96f619ff4e14b12e097252fb94723e35
BLAKE2b-256 checksum
How to use checksums
478834a867ed620d9e85d3d038cbe3ec4d86e8e4a69269e7a397e8372e5d3cb6
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.6.0-cp311-abi3-musllinux_1_2_aarch64.whl

Download URL aioquic-1.6.0-cp311-abi3-musllinux_1_2_aarch64.whl
Size 114.6 kB
Tags CPython 3.11 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
536391f4fd4f42025bfcb6e150e14a63c8778763a0a7a3a8709cc1349760bad6
BLAKE2b-256 checksum
How to use checksums
f4629e8501a8133a2bdc3c6fc0328e8e0d5a1381805dd7b67d1a6fe8c92c3293
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.6.0-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL aioquic-1.6.0-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 113.5 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
3cb1a99ee55524166ba7b9a41a44819e254c7bc83d9507b91ee5286024f53148
BLAKE2b-256 checksum
How to use checksums
aaeec66590c778563b7016bab2e3298b56221d99ee52ec215ad72b1a21069106
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.6.0-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL aioquic-1.6.0-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 114.9 kB
Tags CPython 3.11 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
74578e4c269731253e97de6748f5107a8cca3efa9db25b928ff09ee42db66e37
BLAKE2b-256 checksum
How to use checksums
e4d593a8f598c23f073e2ad42fc4c031b246db4c8afec37b6c0dc33ae1c811ac
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.6.0-cp311-abi3-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl

Download URL aioquic-1.6.0-cp311-abi3-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Size 112.4 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
00e44fbe19c2d4bf5d62d597f8079c18232db9568cbb27085ab76670377827a7
BLAKE2b-256 checksum
How to use checksums
d984115cc188df4742cf90a78893455b2c553c462db345c2d06b8f6746698da7
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.6.0-cp311-abi3-macosx_11_0_arm64.whl

Download URL aioquic-1.6.0-cp311-abi3-macosx_11_0_arm64.whl
Size 105.3 kB
Tags CPython 3.11 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9b0184858978952031f4720a9010a26ad5e44ea194cb999fd8c2e3f192749f20
BLAKE2b-256 checksum
How to use checksums
a0a16328bf3308d2cd1422a39fdae588336eefdcfe99b9d785467aa594ea8076
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.6.0-cp311-abi3-macosx_10_9_x86_64.whl

Download URL aioquic-1.6.0-cp311-abi3-macosx_10_9_x86_64.whl
Size 104.9 kB
Tags CPython 3.11 abi3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
e11001124b811d829371d2e8d618787140622e310db60398a9f98c6196633043
BLAKE2b-256 checksum
How to use checksums
cf088045f83193516fb283e7f77c914b99cda7f0a1848e97205a4d6b968fe8ed
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

1.7.0

12 release files

1.6.1

12 release files

This release

1.6.0 This release

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