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.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.7.1
File Size Uploaded Provenance Actions
aioquic-1.7.1.tar.gz 230.3 kB Without provenance Details for aioquic-1.7.1.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for aioquic 1.7.1
File Actions
aioquic-1.7.1-cp311-abi3-win_arm64.whl CPython 3.11 abi3 Windows ARM64 Details for aioquic-1.7.1-cp311-abi3-win_arm64.whl
aioquic-1.7.1-cp311-abi3-win_amd64.whl CPython 3.11 abi3 Windows x86-64 Details for aioquic-1.7.1-cp311-abi3-win_amd64.whl
aioquic-1.7.1-cp311-abi3-win32.whl CPython 3.11 abi3 Windows x86-32 Details for aioquic-1.7.1-cp311-abi3-win32.whl
aioquic-1.7.1-cp311-abi3-musllinux_1_2_x86_64.whl CPython 3.11 abi3 Linux musl 1.2+ x86-64 Details for aioquic-1.7.1-cp311-abi3-musllinux_1_2_x86_64.whl
aioquic-1.7.1-cp311-abi3-musllinux_1_2_i686.whl CPython 3.11 abi3 Linux musl 1.2+ x86-32 Details for aioquic-1.7.1-cp311-abi3-musllinux_1_2_i686.whl
aioquic-1.7.1-cp311-abi3-musllinux_1_2_aarch64.whl CPython 3.11 abi3 Linux musl 1.2+ ARM64 Details for aioquic-1.7.1-cp311-abi3-musllinux_1_2_aarch64.whl
aioquic-1.7.1-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 for aioquic-1.7.1-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
aioquic-1.7.1-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 for aioquic-1.7.1-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
aioquic-1.7.1-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 for aioquic-1.7.1-cp311-abi3-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
aioquic-1.7.1-cp311-abi3-macosx_11_0_arm64.whl CPython 3.11 abi3 macOS 11.0+ ARM64 Details for aioquic-1.7.1-cp311-abi3-macosx_11_0_arm64.whl
aioquic-1.7.1-cp311-abi3-macosx_10_9_x86_64.whl CPython 3.11 abi3 macOS 10.9+ x86-64 Details for aioquic-1.7.1-cp311-abi3-macosx_10_9_x86_64.whl

Total release size: 1.5 MB

Release files / aioquic-1.7.1.tar.gz

Download URL aioquic-1.7.1.tar.gz
Size 230.3 kB
Tags Source
SHA-256 checksum
How to use checksums
3d7fca2e2d2a99948e515830270fa3378f01fe7d11e5a16e2bed3fefdad194c0
BLAKE2b-256 checksum
How to use checksums
e821acfb9ce4d2923de97a01518f921a9b8b89fc5aaf134424aaedeb7763c68f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL aioquic-1.7.1-cp311-abi3-win_arm64.whl
Size 116.3 kB
Tags CPython 3.11 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
5bcbe85eb9134389b289d1d64810e527b817bd3aff89507d57502ada45642187
BLAKE2b-256 checksum
How to use checksums
07849db5657cbdada7af9b59045874342929c8ad4ffa6e9af11b4d437d1338a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL aioquic-1.7.1-cp311-abi3-win_amd64.whl
Size 116.6 kB
Tags CPython 3.11 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
fdce437064cb68ae624458fb42ba5adb0180c667b1e9bf108e2855fe508bc659
BLAKE2b-256 checksum
How to use checksums
1e3f910aac86829ad270f0159b64117170b6aef8e82137c09723b2c6b47dbd44
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL aioquic-1.7.1-cp311-abi3-win32.whl
Size 116.1 kB
Tags CPython 3.11 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
c014dfd7a16bef9d27fb0e11bd20f5afdaebd34d0d1b64893b758523810e9fde
BLAKE2b-256 checksum
How to use checksums
7bd0a955792ec697d4d5c74ab094c77c7658b54d82bc095cef6a7cbc85ad8cc8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL aioquic-1.7.1-cp311-abi3-musllinux_1_2_x86_64.whl
Size 122.8 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
a47f69f2c7846ac65f93c2bb1ba70274c35c16448b7c64fcc99fa39462633b55
BLAKE2b-256 checksum
How to use checksums
8aca6b65bfbe8456d52207a26539afb4f5433f2186c85c5a66f2c28e71d22ea0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL aioquic-1.7.1-cp311-abi3-musllinux_1_2_i686.whl
Size 122.1 kB
Tags CPython 3.11 Linux musl 1.2+ x86-32 abi3
SHA-256 checksum
How to use checksums
4b501fea9bedaaf616c5e02d92ad54f237959d7c15b85847bd337ff7e872b3fd
BLAKE2b-256 checksum
How to use checksums
8952614bd1f6c69b1e3a45b9e34c2278116d6d970099e762732b45871a8f8a69
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL aioquic-1.7.1-cp311-abi3-musllinux_1_2_aarch64.whl
Size 123.7 kB
Tags CPython 3.11 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
2a6743660070510eb3de0e9803e01e9f331001e562326d22fb2a59ba7b0965ed
BLAKE2b-256 checksum
How to use checksums
6cff47358ea64a8151319b3c4918236885565fa3152375b43f37c4c88a83811b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL aioquic-1.7.1-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 122.6 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
4d90f8382951f16909ba8b8cbe8cba00f867ca464aa5898789afc9e8e5111504
BLAKE2b-256 checksum
How to use checksums
d83e19b8db524d82d8a9ba765da91cd3be9e2f25ba69483c3a48cd582ddae28a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

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

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

Download URL aioquic-1.7.1-cp311-abi3-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Size 121.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
9f93891648984adb1930749263e402a9f1e786a03e83e0fbb7ac933104232962
BLAKE2b-256 checksum
How to use checksums
d3486a785ee6bb3e7296f293f7e7982bdf85ed5e3de13bcb35e5eab9ff31b72c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL aioquic-1.7.1-cp311-abi3-macosx_11_0_arm64.whl
Size 114.4 kB
Tags CPython 3.11 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2793f1ed86816b5bb613c27e321b0e57b59363974e13542c4f2748ea54d8cb2a
BLAKE2b-256 checksum
How to use checksums
1a0330c61ccacf7adc452b0b9ed7ccf2bf7a6cfe93714a46260e33d0d68bfdef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL aioquic-1.7.1-cp311-abi3-macosx_10_9_x86_64.whl
Size 114.0 kB
Tags CPython 3.11 abi3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
7999e061153c5efab96018b2e9fe3e8722965b60ed5531f0f6f64d931d2d100b
BLAKE2b-256 checksum
How to use checksums
44bd4e3c43b7dfedc687aad4f4c8b4a69b2908f152bbe5053f93accf00116260
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Security for aioquic 1.7.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.7.1 This release

12 release files No provenance

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