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.5.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.5.0
File Size Uploaded
aioquic-1.5.0.tar.gz 189.2 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for aioquic 1.5.0
File
aioquic-1.5.0-cp311-abi3-win_arm64.whl CPython 3.11 abi3 Windows ARM64 Details
aioquic-1.5.0-cp311-abi3-win_amd64.whl CPython 3.11 abi3 Windows x86-64 Details
aioquic-1.5.0-cp311-abi3-win32.whl CPython 3.11 abi3 Windows x86-32 Details
aioquic-1.5.0-cp311-abi3-musllinux_1_2_x86_64.whl CPython 3.11 abi3 Linux musl 1.2+ x86-64 Details
aioquic-1.5.0-cp311-abi3-musllinux_1_2_i686.whl CPython 3.11 abi3 Linux musl 1.2+ x86-32 Details
aioquic-1.5.0-cp311-abi3-musllinux_1_2_aarch64.whl CPython 3.11 abi3 Linux musl 1.2+ ARM64 Details
aioquic-1.5.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.5.0-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 abi3 Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details
aioquic-1.5.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.5.0-cp311-abi3-macosx_11_0_arm64.whl CPython 3.11 abi3 macOS 11.0+ ARM64 Details
aioquic-1.5.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.5.0.tar.gz

Download URL aioquic-1.5.0.tar.gz
Size 189.2 kB
Tags Source
SHA-256 checksum
How to use checksums
f765bd3c0792110f94cd945e9cac67255d0250875efb4eb4995305d9c55336af
BLAKE2b-256 checksum
How to use checksums
619571087f0d4a79560572744a513a7a59da9ba71edf8136d020428fe8d1605a
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.5.0-cp311-abi3-win_arm64.whl

Download URL aioquic-1.5.0-cp311-abi3-win_arm64.whl
Size 103.2 kB
Tags CPython 3.11 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
c502f6d6a7f6d77f2ac675b767fd986e922a8af61cc17475903573bdde01f809
BLAKE2b-256 checksum
How to use checksums
edf33419a5ca74e8ac05ae1ee35bcdc94d13446f410f210b30340bd3d4c83517
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.5.0-cp311-abi3-win_amd64.whl

Download URL aioquic-1.5.0-cp311-abi3-win_amd64.whl
Size 103.5 kB
Tags CPython 3.11 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
8b795713356a9485e2614c058400cf8488a5533e82b12d53fb08076c2a112a7f
BLAKE2b-256 checksum
How to use checksums
50de1819e14afe1610c7a636a0b2861db6696aa4f5d4b40ac2192f225509d31e
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.5.0-cp311-abi3-win32.whl

Download URL aioquic-1.5.0-cp311-abi3-win32.whl
Size 102.9 kB
Tags CPython 3.11 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
ee71e14066ddcce8b42db9212f2fa1e10920ba4e3ed5f2bf49261f73a1ef2f80
BLAKE2b-256 checksum
How to use checksums
b734eb6f7847a17855d580c5bf5ddb49c4c479b1440bcac8d6da62b9b4e36c3b
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.5.0-cp311-abi3-musllinux_1_2_x86_64.whl

Download URL aioquic-1.5.0-cp311-abi3-musllinux_1_2_x86_64.whl
Size 109.7 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
6c9aa0ed7bbeb4c8343ebb8f7f6d40a3f7b030e8632b3ecd72dac9ced2885930
BLAKE2b-256 checksum
How to use checksums
25367a63ecf08ad6c25473f33db2e549b8677538c8a559fdc69297375c7bffa3
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.5.0-cp311-abi3-musllinux_1_2_i686.whl

Download URL aioquic-1.5.0-cp311-abi3-musllinux_1_2_i686.whl
Size 108.9 kB
Tags CPython 3.11 Linux musl 1.2+ x86-32 abi3
SHA-256 checksum
How to use checksums
a97c43bac1f13b6278ab255efb953ffd946cac1bcf4d9eb5d0a1b5d0fc3201a3
BLAKE2b-256 checksum
How to use checksums
f32f8b770abf8c90cf07b9918ee9f3a638784b4894df9c79f4225d47305b3807
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.5.0-cp311-abi3-musllinux_1_2_aarch64.whl

Download URL aioquic-1.5.0-cp311-abi3-musllinux_1_2_aarch64.whl
Size 110.5 kB
Tags CPython 3.11 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
6966e6a356578217d1b55b5ad894b14d2689d6461761ad5cd8286059440d64bf
BLAKE2b-256 checksum
How to use checksums
cd05ff038d9ec9b36cf258687b6e0f176d953d5d33e7013cde182a98ab044893
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.5.0-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL aioquic-1.5.0-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 109.4 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
1ec919fd627c8a65452b1cb4d7a2cf6308b4ce561f1c99749cd11833fad687fd
BLAKE2b-256 checksum
How to use checksums
6f82cf1c6a0d2f5605d6128480f0214e30db2fcaa4847d768c857ce5f1e39f1d
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.5.0-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL aioquic-1.5.0-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 110.8 kB
Tags CPython 3.11 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
ea010b9443f3ed2aa0a208fc7b4f39220b2a8cef976f40ff5edb51affe8acef2
BLAKE2b-256 checksum
How to use checksums
091ea259bb8a6be618fbd03b3e6f5395964d310e350e55d796b4670e440d3c0b
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.5.0-cp311-abi3-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl

Download URL aioquic-1.5.0-cp311-abi3-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Size 108.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
532b6d830d4cbdcab5c99af8ac1286d052108dd415f2d4e037dfd5e3a4ecbc48
BLAKE2b-256 checksum
How to use checksums
448d3ccba0acb5ca754e0301bc3a2b558d1659efa29a8ca897e9f1ed4beebab5
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.5.0-cp311-abi3-macosx_11_0_arm64.whl

Download URL aioquic-1.5.0-cp311-abi3-macosx_11_0_arm64.whl
Size 101.3 kB
Tags CPython 3.11 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
741c590883b5d2b2569e6502d3ddef4106710b74e2cfa2e85b56541d48511ac0
BLAKE2b-256 checksum
How to use checksums
53f1ec77ba1f51a761596e98e7ed3f36fbe9d2bef1f1d390ce87b28b4beac068
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.5.0-cp311-abi3-macosx_10_9_x86_64.whl

Download URL aioquic-1.5.0-cp311-abi3-macosx_10_9_x86_64.whl
Size 100.9 kB
Tags CPython 3.11 abi3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
2bfcd9b815c365dfdf7a9aa8633ae249ff424ff1987f1fbf68a5bd0a68ba2924
BLAKE2b-256 checksum
How to use checksums
541d8c0599f8a68aab199ee19012bf681b812a081426d1ce2d8e38bd06621daa
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.5.0 This release

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