Skip to content

mohi7solanki/aioquic

 
 

Repository files navigation

aioquic

rtd travis codecov black

What is aioquic?

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

Status

aioquic is still a work in progress, and the API is not finalized.

Running the examples

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

License

aioquic is released under the BSD license.

About

QUIC implementation in Python

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.8%
  • Shell 0.2%