aioquic
is a library for the QUIC network protocol in Python. It is built
on top of asyncio
, Python's standard asynchronous I/O framework.
aioquic
features a minimal TLS 1.3 implementation built upon the
cryptography library. This is because QUIC requires some APIs which are
currently unavailable in mainstream TLS implementations such as OpenSSL:
- the ability to extract traffic secrets
- the ability to operate directly on TLS messages, without using the TLS record layer
aioquic
is still a work in progress, and the API is not finalized.
aioquic
requires Python 3.7 or better. After checking out the code using
git you can run:
$ pip install -e .
You can now run the example server:
$ python examples/server.py --certificate tests/ssl_cert.pem --private-key tests/ssl_key.pem
You can also run the example client, which will perform an HTTP/0.9 request:
$ python examples/client.py localhost 4433
aioquic
is released under the BSD license.