Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
1Metadata-Version: 2.1
2Name: aioquic
3Version: 1.2.0
4Summary: An implementation of QUIC and HTTP/3
5Author-email: Jeremy Lainé <jeremy.laine@m4x.org>
6License: BSD-3-Clause
7Project-URL: Homepage, https://github.com/aiortc/aioquic
8Project-URL: Changelog, https://aioquic.readthedocs.io/en/stable/changelog.html
9Project-URL: Documentation, https://aioquic.readthedocs.io/
10Classifier: Development Status :: 5 - Production/Stable
11Classifier: Environment :: Web Environment
12Classifier: Intended Audience :: Developers
13Classifier: License :: OSI Approved :: BSD License
14Classifier: Operating System :: OS Independent
15Classifier: Programming Language :: Python
16Classifier: Programming Language :: Python :: 3
17Classifier: Programming Language :: Python :: 3.8
18Classifier: Programming Language :: Python :: 3.9
19Classifier: Programming Language :: Python :: 3.10
20Classifier: Programming Language :: Python :: 3.11
21Classifier: Programming Language :: Python :: 3.12
22Classifier: Topic :: Internet :: WWW/HTTP
23Requires-Python: >=3.8
24Description-Content-Type: text/x-rst
25License-File: LICENSE
26Requires-Dist: certifi
27Requires-Dist: cryptography >=42.0.0
28Requires-Dist: pylsqpack <0.4.0,>=0.3.3
29Requires-Dist: pyopenssl >=24
30Requires-Dist: service-identity >=24.1.0
31Provides-Extra: dev
32Requires-Dist: coverage[toml] >=7.2.2 ; extra == 'dev'
33
34aioquic
35=======
36
37.. image:: https://img.shields.io/pypi/l/aioquic.svg
38   :target: https://pypi.python.org/pypi/aioquic
39   :alt: License
40
41.. image:: https://img.shields.io/pypi/v/aioquic.svg
42   :target: https://pypi.python.org/pypi/aioquic
43   :alt: Version
44
45.. image:: https://img.shields.io/pypi/pyversions/aioquic.svg
46   :target: https://pypi.python.org/pypi/aioquic
47   :alt: Python versions
48
49.. image:: https://github.com/aiortc/aioquic/workflows/tests/badge.svg
50   :target: https://github.com/aiortc/aioquic/actions
51   :alt: Tests
52
53.. image:: https://img.shields.io/codecov/c/github/aiortc/aioquic.svg
54   :target: https://codecov.io/gh/aiortc/aioquic
55   :alt: Coverage
56
57.. image:: https://readthedocs.org/projects/aioquic/badge/?version=latest
58   :target: https://aioquic.readthedocs.io/
59   :alt: Documentation
60
61What is ``aioquic``?
62--------------------
63
64``aioquic`` is a library for the QUIC network protocol in Python. It features
65a minimal TLS 1.3 implementation, a QUIC stack and an HTTP/3 stack.
66
67``aioquic`` is used by Python opensource projects such as `dnspython`_,
68`hypercorn`_, `mitmproxy`_ and the `Web Platform Tests`_ cross-browser test
69suite. It has also been used extensively in research papers about QUIC.
70
71To learn more about ``aioquic`` please `read the documentation`_.
72
73Why should I use ``aioquic``?
74-----------------------------
75
76``aioquic`` has been designed to be embedded into Python client and server
77libraries wishing to support QUIC and / or HTTP/3. The goal is to provide a
78common codebase for Python libraries in the hope of avoiding duplicated effort.
79
80Both the QUIC and the HTTP/3 APIs follow the "bring your own I/O" pattern,
81leaving actual I/O operations to the API user. This approach has a number of
82advantages including making the code testable and allowing integration with
83different concurrency models.
84
85A lot of effort has gone into writing an extensive test suite for the
86``aioquic`` code to ensure best-in-class code quality, and it is regularly
87`tested for interoperability`_ against other `QUIC implementations`_.
88
89Features
90--------
91
92- minimal TLS 1.3 implementation conforming with `RFC 8446`_
93- QUIC stack conforming with `RFC 9000`_ (QUIC v1) and `RFC 9369`_ (QUIC v2)
94   * IPv4 and IPv6 support
95   * connection migration and NAT rebinding
96   * logging TLS traffic secrets
97   * logging QUIC events in QLOG format
98   * version negotiation conforming with `RFC 9368`_
99- HTTP/3 stack conforming with `RFC 9114`_
100   * server push support
101   * WebSocket bootstrapping conforming with `RFC 9220`_
102   * datagram support conforming with `RFC 9297`_
103
104Installing
105----------
106
107The easiest way to install ``aioquic`` is to run:
108
109.. code:: bash
110
111    pip install aioquic
112
113Building from source
114--------------------
115
116If there are no wheels for your system or if you wish to build ``aioquic``
117from source you will need the OpenSSL development headers.
118
119Linux
120.....
121
122On Debian/Ubuntu run:
123
124.. code-block:: console
125
126   sudo apt install libssl-dev python3-dev
127
128On Alpine Linux run:
129
130.. code-block:: console
131
132   sudo apk add openssl-dev python3-dev bsd-compat-headers libffi-dev
133
134OS X
135....
136
137On OS X run:
138
139.. code-block:: console
140
141   brew install openssl
142
143You will need to set some environment variables to link against OpenSSL:
144
145.. code-block:: console
146
147   export CFLAGS=-I$(brew --prefix openssl)/include
148   export LDFLAGS=-L$(brew --prefix openssl)/lib
149
150Windows
151.......
152
153On Windows the easiest way to install OpenSSL is to use `Chocolatey`_.
154
155.. code-block:: console
156
157   choco install openssl
158
159You will need to set some environment variables to link against OpenSSL:
160
161.. code-block:: console
162
163  $Env:INCLUDE = "C:\Progra~1\OpenSSL\include"
164  $Env:LIB = "C:\Progra~1\OpenSSL\lib"
165
166Running the examples
167--------------------
168
169`aioquic` comes with a number of examples illustrating various QUIC usecases.
170
171You can browse these examples here: https://github.com/aiortc/aioquic/tree/main/examples
172
173License
174-------
175
176``aioquic`` is released under the `BSD license`_.
177
178.. _read the documentation: https://aioquic.readthedocs.io/en/latest/
179.. _dnspython: https://github.com/rthalley/dnspython
180.. _hypercorn: https://github.com/pgjones/hypercorn
181.. _mitmproxy: https://github.com/mitmproxy/mitmproxy
182.. _Web Platform Tests: https://github.com/web-platform-tests/wpt
183.. _tested for interoperability: https://interop.seemann.io/
184.. _QUIC implementations: https://github.com/quicwg/base-drafts/wiki/Implementations
185.. _cryptography: https://cryptography.io/
186.. _Chocolatey: https://chocolatey.org/
187.. _BSD license: https://aioquic.readthedocs.io/en/latest/license.html
188.. _RFC 8446: https://datatracker.ietf.org/doc/html/rfc8446
189.. _RFC 9000: https://datatracker.ietf.org/doc/html/rfc9000
190.. _RFC 9114: https://datatracker.ietf.org/doc/html/rfc9114
191.. _RFC 9220: https://datatracker.ietf.org/doc/html/rfc9220
192.. _RFC 9297: https://datatracker.ietf.org/doc/html/rfc9297
193.. _RFC 9368: https://datatracker.ietf.org/doc/html/rfc9368
194.. _RFC 9369: https://datatracker.ietf.org/doc/html/rfc9369
195 
codekingpro/portable-devtools · Team Ai