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.6 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.pemYou can also run the example client, which will perform an HTTP/0.9 request:
$ python examples/client.py localhost 4433aioquic is released under the BSD license.