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 9846

  • 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
    • 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.8.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.8.0
File Size Uploaded Provenance Actions
aioquic-1.8.0.tar.gz 252.8 kB Without provenance Details for aioquic-1.8.0.tar.gz

Built distributions (wheels)

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

Total release size: 1.7 MB

Release files / aioquic-1.8.0.tar.gz

Download URL aioquic-1.8.0.tar.gz
Size 252.8 kB
Tags Source
SHA-256 checksum
How to use checksums
a17bf2347cb9f92c5ccb93fd88be65550e47db2a76e086602b226259f814b111
BLAKE2b-256 checksum
How to use checksums
bc448af27698f92247b1e76380220f9364f91c04c89a7c98fb52e8a9416434bb
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.8.0-cp311-abi3-win_arm64.whl

Download URL aioquic-1.8.0-cp311-abi3-win_arm64.whl
Size 127.0 kB
Tags CPython 3.11 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
12333f99f7493af4bc6b9af24f5ac45ae993a2780b9c469c38bdf4461189d5db
BLAKE2b-256 checksum
How to use checksums
f55b14240fa63e6ee5e96f65899286f8614433812d5ab1640021923b196bab8b
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.8.0-cp311-abi3-win_amd64.whl

Download URL aioquic-1.8.0-cp311-abi3-win_amd64.whl
Size 127.3 kB
Tags CPython 3.11 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
6fd3cd612aa739be38ab15005e596087cfc0ecbbe935a0343dc82f8b60532669
BLAKE2b-256 checksum
How to use checksums
e28771e24b2196e8fced4f2ed54f8ed3813aa87e381653511250050f0d9f642f
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.8.0-cp311-abi3-win32.whl

Download URL aioquic-1.8.0-cp311-abi3-win32.whl
Size 126.9 kB
Tags CPython 3.11 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
14c8f0e4d7a74ee6ba3ade9434601f21ab8d6f9948f602efddbfc082d2bbb385
BLAKE2b-256 checksum
How to use checksums
559f2eeeae9c9b7daf355081f28f8c681fd8604707127c6630a51b3b9b1c5548
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.8.0-cp311-abi3-musllinux_1_2_x86_64.whl

Download URL aioquic-1.8.0-cp311-abi3-musllinux_1_2_x86_64.whl
Size 133.6 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
b2acf9f4b7214502792d3430a341907f872cedd25042430f2c4138f9b7092d87
BLAKE2b-256 checksum
How to use checksums
7909699ebd0faf9ef1ce31a8103650155a9063a2e49b672074ace750bbf71122
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.8.0-cp311-abi3-musllinux_1_2_i686.whl

Download URL aioquic-1.8.0-cp311-abi3-musllinux_1_2_i686.whl
Size 132.9 kB
Tags CPython 3.11 Linux musl 1.2+ x86-32 abi3
SHA-256 checksum
How to use checksums
78616046a99831c55ca3aac3405b6353e79a923c67a6e5b1dd134585cfcc8e66
BLAKE2b-256 checksum
How to use checksums
f6bab81c987d46985680745e071af2d5d1aa2729f8ad83f741db9ad09b5d45f7
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.8.0-cp311-abi3-musllinux_1_2_aarch64.whl

Download URL aioquic-1.8.0-cp311-abi3-musllinux_1_2_aarch64.whl
Size 134.4 kB
Tags CPython 3.11 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
eb44d2276ad670e8608bc2f2a926afc8e06f62de87275afb56d7ed8aa8a4f298
BLAKE2b-256 checksum
How to use checksums
32b63beb3dfe0e5b68236e43a465f72adc90bcdf3c8da8b6e4e818d630b5ed11
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.8.0-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL aioquic-1.8.0-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 133.3 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
ac365806f09cba9127fe716f570219bf1fb7d733e847eef7535ade5c08aed721
BLAKE2b-256 checksum
How to use checksums
a3c994271b69037d62fdba051459d8676a56631b7dfbafee6916ea7db191230a
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.8.0-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL aioquic-1.8.0-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 134.7 kB
Tags CPython 3.11 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
a4b57b3235014074fd7316dae5f4ee08cf46fa9b9c7bdf8718c3f310aaff9155
BLAKE2b-256 checksum
How to use checksums
184ca508df5fac79c056d38f83fde41db713f6d3b626c2d0643a41bcce2d203e
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.8.0-cp311-abi3-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl

Download URL aioquic-1.8.0-cp311-abi3-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Size 132.3 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
d9de93041c7749f1a93dbc0367408572ed76d710566fd7d74241ce7f69388350
BLAKE2b-256 checksum
How to use checksums
cddb92a0d091f2e8d8af493c96cbd31f1c1b07ac045b37b569124e8667b9bdcf
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.8.0-cp311-abi3-macosx_11_0_arm64.whl

Download URL aioquic-1.8.0-cp311-abi3-macosx_11_0_arm64.whl
Size 125.2 kB
Tags CPython 3.11 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3da2c9609cd7299ee2965ff4b0df7a5d50ebe4eacd0cf50f8243686612c2d801
BLAKE2b-256 checksum
How to use checksums
df4de75614a017e611f23a8d97b502347b645898a11149dd64bc812beac0d81c
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.8.0-cp311-abi3-macosx_10_9_x86_64.whl

Download URL aioquic-1.8.0-cp311-abi3-macosx_10_9_x86_64.whl
Size 124.7 kB
Tags CPython 3.11 abi3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
90d1a379ff0057a84863ba7d886af7f49eedfd1a14def5ba5a3ba719ab99c37f
BLAKE2b-256 checksum
How to use checksums
81652e4f226e19b5a86e66dff5918043bb903015213e4efd7b84ac39c58ce95f
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.8.0

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