aioquic-gcc49-An implementation of QUIC and HTTP/3-Madricas
发布:2020-12-22 14:03:34.702868
作者:Madricas
### 作者邮箱:[email protected]
### 首页:https://github.com/madricas/aioquic
### 文档:None
### 下载链接
aioquic
|rtd| |pypi-v| |pypi-pyversions| |pypi-l| |travis| |codecov| |black|
.. |rtd| image:: https://readthedocs.org/projects/aioquic/badge/?version=latest :target: https://aioquic.readthedocs.io/
.. |pypi-v| image:: https://img.shields.io/pypi/v/aioquic.svg :target: https://pypi.python.org/pypi/aioquic
.. |pypi-pyversions| image:: https://img.shields.io/pypi/pyversions/aioquic.svg :target: https://pypi.python.org/pypi/aioquic
.. |pypi-l| image:: https://img.shields.io/pypi/l/aioquic.svg :target: https://pypi.python.org/pypi/aioquic
.. |travis| image:: https://img.shields.io/travis/com/aiortc/aioquic.svg :target: https://travis-ci.com/aiortc/aioquic
.. |codecov| image:: https://img.shields.io/codecov/c/github/aiortc/aioquic.svg :target: https://codecov.io/gh/aiortc/aioquic
.. |black| image:: https://img.shields.io/badge/code%20style-black-000000.svg :target: https://github.com/python/black
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.
QUIC standardisation is not finalised yet, but aioquic
closely tracks the specification drafts and is regularly tested for interoperability against other QUIC implementations
_.
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.
Features
- QUIC stack conforming with draft-23
- HTTP/3 stack conforming with draft-23
- minimal TLS 1.3 implementation
- IPv4 and IPv6 support
- connection migration and NAT rebinding
- logging TLS traffic secrets
- logging QUIC events in QLOG format
- HTTP/3 server push support
Running the examples
aioquic
requires Python 3.6 or better, and the OpenSSL development headers.
.. code-block:: console
$ sudo apt install libssl-dev python3-dev
After checking out the code using git you can run:
.. code-block:: console
$ pip install -e . $ pip install aiofiles asgiref httpbin starlette wsproto
HTTP/3 server .............
You can run the example server, which handles both HTTP/0.9 and HTTP/3:
.. code-block:: console
$ python examples/http3server.py --certificate tests/sslcert.pem --private-key tests/ssl_key.pem
HTTP/3 client .............
You can run the example client to perform an HTTP/3 request:
.. code-block:: console
$ python examples/http3_client.py --ca-certs tests/pycacert.pem https://localhost:4433/
Alternatively you can perform an HTTP/0.9 request:
.. code-block:: console
$ python examples/http3_client.py --ca-certs tests/pycacert.pem --legacy-http https://localhost:4433/
You can also open a WebSocket over HTTP/3:
.. code-block:: console
$ python examples/http3_client.py --ca-certs tests/pycacert.pem wss://localhost:4433/ws
License
aioquic
is released under the BSD license
_.
.. _read the documentation: https://aioquic.readthedocs.io/en/latest/ .. _QUIC implementations: https://github.com/quicwg/base-drafts/wiki/Implementations .. _cryptography: https://cryptography.io/ .. _BSD license: https://aioquic.readthedocs.io/en/latest/license.html
Copy from pypi.org
查询时间:98.468ms 渲染时间:98.628ms
本文同步分享在 博客“zhenruyan”(other)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。