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.4.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.4.0
File Size Uploaded
aioquic-1.4.0.tar.gz 184.1 kB Details

Built distributions (wheels)

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

Total release size: 1.3 MB

Release files / aioquic-1.4.0.tar.gz

Download URL aioquic-1.4.0.tar.gz
Size 184.1 kB
Tags Source
SHA-256 checksum
How to use checksums
f8d4b1742a8ae6362ab037b34d5cbbdd3b5eafa9e186d3143e8f57d8d6ab5070
BLAKE2b-256 checksum
How to use checksums
fa33c77527b280e2e868ff74d1003ee33e00c178c38f0e08743fa6646c8ee397
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.4.0-cp311-abi3-win_arm64.whl

Download URL aioquic-1.4.0-cp311-abi3-win_arm64.whl
Size 102.3 kB
Tags CPython 3.11 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
0118a69c5750bf4856488b0c59cf9bc7ce8f4d3911e56443435eb7db38d89bd4
BLAKE2b-256 checksum
How to use checksums
7f7e274ac39887767e5a0d311bcf33c03655d01cac8e172f69ab15d28094b376
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.4.0-cp311-abi3-win_amd64.whl

Download URL aioquic-1.4.0-cp311-abi3-win_amd64.whl
Size 102.6 kB
Tags CPython 3.11 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
c75fb74b1455e515b757b5a3df4738f3034012a55f0dc566f128e586cd710166
BLAKE2b-256 checksum
How to use checksums
007580abc32bd85ad2654ab36ca080e974f2173f619570e2e57970e72fc18f51
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.4.0-cp311-abi3-win32.whl

Download URL aioquic-1.4.0-cp311-abi3-win32.whl
Size 102.1 kB
Tags CPython 3.11 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
5e0284f5b1937c277f625c5ec51089ed991c431c8997f958a0306c373e8d024c
BLAKE2b-256 checksum
How to use checksums
693bb7e2d77760a5fb77ccae0660633c11ec1decd0e71113f3ad020d73dfecea
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.4.0-cp311-abi3-musllinux_1_2_x86_64.whl

Download URL aioquic-1.4.0-cp311-abi3-musllinux_1_2_x86_64.whl
Size 108.8 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
8126b07581bbbca6c65ad14fece7e323b5940bc9ea2cbb663f2dbd3a3af239f5
BLAKE2b-256 checksum
How to use checksums
60fa89fbd2c29c1732aa8f0f5291a5ac5bfe631dc30ffa2ed48340e8ccf37f0b
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.4.0-cp311-abi3-musllinux_1_2_i686.whl

Download URL aioquic-1.4.0-cp311-abi3-musllinux_1_2_i686.whl
Size 108.1 kB
Tags CPython 3.11 Linux musl 1.2+ x86-32 abi3
SHA-256 checksum
How to use checksums
88a78424fb5d87d88152a5dafdeef34770701e8af493f7e921fcda305789181d
BLAKE2b-256 checksum
How to use checksums
a7ae90ed5a0c3ee2d518c80194eb6ff2fc6715220117dc1faa0462f95d1bf928
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.4.0-cp311-abi3-musllinux_1_2_aarch64.whl

Download URL aioquic-1.4.0-cp311-abi3-musllinux_1_2_aarch64.whl
Size 109.7 kB
Tags CPython 3.11 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
b9472375cc62164d23c5c7f84ebe9d7fa0820042729b23a2453221baf8dd4fd1
BLAKE2b-256 checksum
How to use checksums
24043e9da23065841e9151b59b51f0d37e2ceb1ddfef4a5e533d18668d3ab0ef
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.4.0-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL aioquic-1.4.0-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 108.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
705641b7550af8e7317c6b48072be3a1174d08352566fcf191aefb0b66dd60f7
BLAKE2b-256 checksum
How to use checksums
dfe8142b0e0df44770079bcfe912e0419cbb5a74be2baf49f76eca6a9cd0254b
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.4.0-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL aioquic-1.4.0-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 110.0 kB
Tags CPython 3.11 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
e2052db70d8becb87d5b5edd0cda5d8bbe3085367376acc33477f85ab303b71a
BLAKE2b-256 checksum
How to use checksums
769e5245c788a6b61906e5496216d738871c245a74ce1cd4c18545668c1211f9
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.4.0-cp311-abi3-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl

Download URL aioquic-1.4.0-cp311-abi3-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Size 107.5 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
7d7f4135070b9e5e16a199aa051291abb7ebfcbd31cb4038c98785c004dbbf93
BLAKE2b-256 checksum
How to use checksums
b6e296b849193eecfea61210a6232cfd177ca60cf096d52b67f2cc58ec87434c
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.4.0-cp311-abi3-macosx_11_0_arm64.whl

Download URL aioquic-1.4.0-cp311-abi3-macosx_11_0_arm64.whl
Size 100.5 kB
Tags CPython 3.11 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a062ad3d1a31b45ca324589eeb144aca04582d1b38caffdfa6c1c62e125d6c64
BLAKE2b-256 checksum
How to use checksums
a735cac08ff6b20773be54620efc73e0624f1958d5f8df5fbc913ff6646e8789
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.4.0-cp311-abi3-macosx_10_9_x86_64.whl

Download URL aioquic-1.4.0-cp311-abi3-macosx_10_9_x86_64.whl
Size 100.0 kB
Tags CPython 3.11 abi3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
781fd93c5dbd294a94f0804025a47a870769fe2e947f948d6b231f81bf2e67e8
BLAKE2b-256 checksum
How to use checksums
af38860f7ae95910e697722d6402f883d12d32754c02df0611ae8fcca639cacd
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.5.0

12 release files

This release

1.4.0 This release

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