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.1

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.1
File Size Uploaded
aioquic-1.6.1.tar.gz 205.8 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for aioquic 1.6.1
File
aioquic-1.6.1-cp311-abi3-win_arm64.whl CPython 3.11 abi3 Windows ARM64 Details
aioquic-1.6.1-cp311-abi3-win_amd64.whl CPython 3.11 abi3 Windows x86-64 Details
aioquic-1.6.1-cp311-abi3-win32.whl CPython 3.11 abi3 Windows x86-32 Details
aioquic-1.6.1-cp311-abi3-musllinux_1_2_x86_64.whl CPython 3.11 abi3 Linux musl 1.2+ x86-64 Details
aioquic-1.6.1-cp311-abi3-musllinux_1_2_i686.whl CPython 3.11 abi3 Linux musl 1.2+ x86-32 Details
aioquic-1.6.1-cp311-abi3-musllinux_1_2_aarch64.whl CPython 3.11 abi3 Linux musl 1.2+ ARM64 Details
aioquic-1.6.1-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 abi3 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
aioquic-1.6.1-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.1-cp311-abi3-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl CPython 3.11 abi3 Linux glibc 2.28+ x86-32, Linux glibc 2.5+ x86-32 Details
aioquic-1.6.1-cp311-abi3-macosx_11_0_arm64.whl CPython 3.11 abi3 macOS 11.0+ ARM64 Details
aioquic-1.6.1-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.1.tar.gz

Download URL aioquic-1.6.1.tar.gz
Size 205.8 kB
Tags Source
SHA-256 checksum
How to use checksums
9a10d20e69b5914d6fa034becb30ab75ef6a777a3f1b16623ca599e9291c0a5c
BLAKE2b-256 checksum
How to use checksums
959d9adc8c7bfefa53f019e62b731349e737d10e624017375bc64d23e0c16ba5
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.1-cp311-abi3-win_arm64.whl

Download URL aioquic-1.6.1-cp311-abi3-win_arm64.whl
Size 107.9 kB
Tags CPython 3.11 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
65a2605f1d0c657f9ea4b1e5ca7fff7cd03ce5026b268a7fdaec9188c0e61a44
BLAKE2b-256 checksum
How to use checksums
5dce475bc6b1f9bf5b27a49a1169e096e393185fda24fe04d7419b4a8ed804ae
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.1-cp311-abi3-win_amd64.whl

Download URL aioquic-1.6.1-cp311-abi3-win_amd64.whl
Size 108.2 kB
Tags CPython 3.11 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
1866e6f89d5d6a3dab3f730d95d02790c442350532e8eda54f57b9ab5d80bbc6
BLAKE2b-256 checksum
How to use checksums
5dccdc3c2925347031ed930243bcde2b383824a8e3a17c170b37808f4018b9e3
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.1-cp311-abi3-win32.whl

Download URL aioquic-1.6.1-cp311-abi3-win32.whl
Size 107.7 kB
Tags CPython 3.11 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
ca2101ef42d468e9a9511761966bdd5c172882ab414c86e7b38c756cfb9b44ca
BLAKE2b-256 checksum
How to use checksums
c2bb9d72bb9205b7c5e742f8612f94235c82f2af4f19ec5623084bce441b2bb9
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.1-cp311-abi3-musllinux_1_2_x86_64.whl

Download URL aioquic-1.6.1-cp311-abi3-musllinux_1_2_x86_64.whl
Size 114.5 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
fed7503763cd657b47e8590cd859de965ceef9633e5999ad4a9fd60082c84f77
BLAKE2b-256 checksum
How to use checksums
d1313b7073041cb6334cc9f20be63c15eed1e699a5c134652017dfb25c8478d6
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.1-cp311-abi3-musllinux_1_2_i686.whl

Download URL aioquic-1.6.1-cp311-abi3-musllinux_1_2_i686.whl
Size 113.8 kB
Tags CPython 3.11 Linux musl 1.2+ x86-32 abi3
SHA-256 checksum
How to use checksums
2b1670a8136fd09884a2ce0a3d82df2fa6a1b45e3c7ff379052ce86c799d6253
BLAKE2b-256 checksum
How to use checksums
d95ae93cafe53ecdf016e6dfdcdbf527d7ef757ff918c4b0d3177fded6d0e3dd
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.1-cp311-abi3-musllinux_1_2_aarch64.whl

Download URL aioquic-1.6.1-cp311-abi3-musllinux_1_2_aarch64.whl
Size 115.4 kB
Tags CPython 3.11 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
5cd8eb88e29a2f0160ee15ed8afc2a74051615a93eb9443b0afe61de208469eb
BLAKE2b-256 checksum
How to use checksums
d73b33e49cb90f8dc68f3a5ef50de7db72194999662e30afb87750e06aea02a8
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.1-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL aioquic-1.6.1-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 114.2 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
c8230d036fdabd4273c2867243571270bcfe62a79e98d2d6401fdfe363d3d213
BLAKE2b-256 checksum
How to use checksums
b168b6c45854d4b9906f21473fd7822ace7d26198946d335289dacb75e5ae0e7
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.1-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL aioquic-1.6.1-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 115.7 kB
Tags CPython 3.11 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
ee91e59097f7ab50918e9ff83b8c53ca85677411eec75d874d84c27096864342
BLAKE2b-256 checksum
How to use checksums
ef9d6e311556b85cc182445608996299031a4ed2c918e16c5e5e25db69e72710
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.1-cp311-abi3-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl

Download URL aioquic-1.6.1-cp311-abi3-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Size 113.2 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
f9f31f968c4e521d8f2bad0e6ee625765537f77a2a21eb8d4658b9f6fa99ad5a
BLAKE2b-256 checksum
How to use checksums
b50f719690bfc6bce96246a277c9cb3fdc3eae5c7fdf4674f1c86da6ece93dec
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.1-cp311-abi3-macosx_11_0_arm64.whl

Download URL aioquic-1.6.1-cp311-abi3-macosx_11_0_arm64.whl
Size 106.1 kB
Tags CPython 3.11 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c7269146f2659a043ad10c7d40713f920e3c1410ce36b4266e46cc267a2e5b5c
BLAKE2b-256 checksum
How to use checksums
7d188ef42dee7007b659349efa5f096c0518ef984a592468dcf228c48902eb0c
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.1-cp311-abi3-macosx_10_9_x86_64.whl

Download URL aioquic-1.6.1-cp311-abi3-macosx_10_9_x86_64.whl
Size 105.6 kB
Tags CPython 3.11 abi3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
e8c7dd81cfc712c450a9c867e60f1d01d662d86cc538a1c8b7fd7e38f93a3907
BLAKE2b-256 checksum
How to use checksums
8890ca96684eac1f8a2089b1bfd2e9e506abe87db06efadf33d2c8e0d1399699
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.6.1 This release

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