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

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.2
File Size Uploaded Provenance Actions
aioquic-1.7.2.tar.gz 232.1 kB Without provenance Details for aioquic-1.7.2.tar.gz

Built distributions (wheels)

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

Total release size: 1.5 MB

Release files / aioquic-1.7.2.tar.gz

Download URL aioquic-1.7.2.tar.gz
Size 232.1 kB
Tags Source
SHA-256 checksum
How to use checksums
4def7cb0a692dc12c995cc397a93f41b78cc30b7bf078769c3a3bb1ba9dcf362
BLAKE2b-256 checksum
How to use checksums
7a9ae62685ca8f24e6cefa554f2cda6aa5363822391f945c264289a1e236ca8a
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.2-cp311-abi3-win_arm64.whl

Download URL aioquic-1.7.2-cp311-abi3-win_arm64.whl
Size 115.9 kB
Tags CPython 3.11 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
7c889d617f561c8f5e85fc746cc9c8a8829609bd799b3ff427b62975232b5610
BLAKE2b-256 checksum
How to use checksums
10ec5c0bf8d3b99517aff6ae68717124452fdd23f2484942220bbe472fadccd3
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.2-cp311-abi3-win_amd64.whl

Download URL aioquic-1.7.2-cp311-abi3-win_amd64.whl
Size 116.2 kB
Tags CPython 3.11 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
5894ebbe4ec4b541c1b7099fbc1caedb1e3c8fff5fbd745b45354cbea627a33b
BLAKE2b-256 checksum
How to use checksums
05e0a0832abbfee694a5b3111cb7abc505821d8a8c7ad366229573e2cc253a46
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.2-cp311-abi3-win32.whl

Download URL aioquic-1.7.2-cp311-abi3-win32.whl
Size 115.7 kB
Tags CPython 3.11 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
e45fd24a49fb973c06697e079fcb8cc3dca41437c151ca2d525ee53eb7a9340d
BLAKE2b-256 checksum
How to use checksums
2c142b127d1162bfcbf83cee0a55cc2e886a4b5419e6011090d3cbad945ad80e
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.2-cp311-abi3-musllinux_1_2_x86_64.whl

Download URL aioquic-1.7.2-cp311-abi3-musllinux_1_2_x86_64.whl
Size 122.3 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
d6bacbd0c948363bb8c4130e6c9e81a63515eb6d8a9bf9f51d1fb9bf6340c76a
BLAKE2b-256 checksum
How to use checksums
63088ecd68b440d6fbbc784020cfae30406c514309e51df6601aea32acafceb8
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.2-cp311-abi3-musllinux_1_2_i686.whl

Download URL aioquic-1.7.2-cp311-abi3-musllinux_1_2_i686.whl
Size 121.7 kB
Tags CPython 3.11 Linux musl 1.2+ x86-32 abi3
SHA-256 checksum
How to use checksums
06c94407cd6129fa8e72ee76f760dfcc9828b7dc169c129abebcdf0c961eefeb
BLAKE2b-256 checksum
How to use checksums
0f1741b36ddeac150fdb938d85d18a2fac94d87ab6d95b98bdb92935516e6d08
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.2-cp311-abi3-musllinux_1_2_aarch64.whl

Download URL aioquic-1.7.2-cp311-abi3-musllinux_1_2_aarch64.whl
Size 123.2 kB
Tags CPython 3.11 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
a5dc4051d9ac0d40f0c16054c372f3a0c9e987cfe1d6bfa52efcb32996029b6c
BLAKE2b-256 checksum
How to use checksums
420e553f9a169848b086bce9ace020fd0b6097e0523fc52ebbf76428d5da2c06
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.2-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL aioquic-1.7.2-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 122.1 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
4f85133486a7f39743acea265aa4a67696e0b4729864f747fc914a197210dfef
BLAKE2b-256 checksum
How to use checksums
0256a384e04c138ecc5dffb13e1edcf810bfe8f803124db046854dc26cd8b322
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.2-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL aioquic-1.7.2-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 123.5 kB
Tags CPython 3.11 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
b6fbed92be3e3d791f2067547db5edb5a8e4730483292bfd946aa8ddab2f8154
BLAKE2b-256 checksum
How to use checksums
07939ab127b21c5993b2740e21aaf0aab18d76f07a5c52c2cb70ba70d588c9a5
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.2-cp311-abi3-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl

Download URL aioquic-1.7.2-cp311-abi3-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Size 121.1 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
c6ed4fbcf2027986cf2ee8bc9fe5f1ce0b2374d8747f6af7c817d8f2925e2572
BLAKE2b-256 checksum
How to use checksums
35ba88bf755405b8d3fe756d1b4ba369d956995d74b0c444cf7061dcd6fbd76f
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.2-cp311-abi3-macosx_11_0_arm64.whl

Download URL aioquic-1.7.2-cp311-abi3-macosx_11_0_arm64.whl
Size 114.0 kB
Tags CPython 3.11 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c92d455f2e1992e3981162ca3f4fd71f79aa99165260e74adc4e6bf0b61c335e
BLAKE2b-256 checksum
How to use checksums
77aebea78de6148d008c6da499c27558fbe6876690c57a71ca0b3811e9d7eeef
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.2-cp311-abi3-macosx_10_9_x86_64.whl

Download URL aioquic-1.7.2-cp311-abi3-macosx_10_9_x86_64.whl
Size 113.5 kB
Tags CPython 3.11 abi3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
994bf341855bb1a0c45e86cf9122a474f46491601b19d5c41c05f22db4101a38
BLAKE2b-256 checksum
How to use checksums
099d5af3f2fa5de46a838fcd5728e7689f0c86cb56e606659701f8ea91ee1b8f
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.2

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