| Name | aioquic JSON |
| Version |
1.3.0
JSON |
| download |
| home_page | None |
| Summary | An implementation of QUIC and HTTP/3 |
| upload_time | 2025-10-11 09:16:30 |
| maintainer | None |
| docs_url | None |
| author | None |
| requires_python | >=3.10 |
| license | None |
| keywords |
|
| VCS |
 |
| bugtrack_url |
|
| requirements |
No requirements were recorded.
|
| Travis-CI |
No Travis.
|
| coveralls test coverage |
No coveralls.
|
aioquic
=======
.. image:: https://img.shields.io/pypi/l/aioquic.svg
:target: https://pypi.python.org/pypi/aioquic
:alt: License
.. image:: https://img.shields.io/pypi/v/aioquic.svg
:target: https://pypi.python.org/pypi/aioquic
:alt: Version
.. image:: https://img.shields.io/pypi/pyversions/aioquic.svg
:target: https://pypi.python.org/pypi/aioquic
:alt: Python versions
.. image:: https://github.com/aiortc/aioquic/workflows/tests/badge.svg
:target: https://github.com/aiortc/aioquic/actions
:alt: Tests
.. image:: https://img.shields.io/codecov/c/github/aiortc/aioquic.svg
:target: https://codecov.io/gh/aiortc/aioquic
:alt: Coverage
.. image:: https://readthedocs.org/projects/aioquic/badge/?version=latest
:target: https://aioquic.readthedocs.io/
:alt: Documentation
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.
``aioquic`` is used by Python opensource projects such as `dnspython`_,
`hypercorn`_, `mitmproxy`_ and the `Web Platform Tests`_ cross-browser test
suite. It has also been used extensively in research papers about QUIC.
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.
A lot of effort has gone into writing an extensive test suite for the
``aioquic`` code to ensure best-in-class code quality, and it is regularly
`tested for interoperability`_ against other `QUIC implementations`_.
Features
--------
- minimal TLS 1.3 implementation conforming with `RFC 8446`_
- QUIC stack conforming with `RFC 9000`_ (QUIC v1) and `RFC 9369`_ (QUIC v2)
* IPv4 and IPv6 support
* connection migration and NAT rebinding
* logging TLS traffic secrets
* logging QUIC events in QLOG format
* version negotiation conforming with `RFC 9368`_
- HTTP/3 stack conforming with `RFC 9114`_
* server push support
* WebSocket bootstrapping conforming with `RFC 9220`_
* datagram support conforming with `RFC 9297`_
Installing
----------
The easiest way to install ``aioquic`` is to run:
.. code:: bash
pip install aioquic
Building from source
--------------------
If there are no wheels for your system or if you wish to build ``aioquic``
from source you will need the OpenSSL development headers.
Linux
.....
On Debian/Ubuntu run:
.. code-block:: console
sudo apt install libssl-dev python3-dev
On Alpine Linux run:
.. code-block:: console
sudo apk add openssl-dev python3-dev bsd-compat-headers libffi-dev
OS X
....
On OS X run:
.. code-block:: console
brew install openssl
You will need to set some environment variables to link against OpenSSL:
.. code-block:: console
export CFLAGS=-I$(brew --prefix openssl)/include
export LDFLAGS=-L$(brew --prefix openssl)/lib
Windows
.......
On Windows the easiest way to install OpenSSL is to use `Chocolatey`_.
.. code-block:: console
choco install openssl
You will need to set some environment variables to link against OpenSSL:
.. code-block:: console
$Env:INCLUDE = "C:\Progra~1\OpenSSL\include"
$Env:LIB = "C:\Progra~1\OpenSSL\lib"
Running the examples
--------------------
`aioquic` comes with a number of examples illustrating various QUIC usecases.
You can browse these examples here: https://github.com/aiortc/aioquic/tree/main/examples
License
-------
``aioquic`` is released under the `BSD license`_.
.. _read the documentation: https://aioquic.readthedocs.io/en/latest/
.. _dnspython: https://github.com/rthalley/dnspython
.. _hypercorn: https://github.com/pgjones/hypercorn
.. _mitmproxy: https://github.com/mitmproxy/mitmproxy
.. _Web Platform Tests: https://github.com/web-platform-tests/wpt
.. _tested for interoperability: https://interop.seemann.io/
.. _QUIC implementations: https://github.com/quicwg/base-drafts/wiki/Implementations
.. _cryptography: https://cryptography.io/
.. _Chocolatey: https://chocolatey.org/
.. _BSD license: https://aioquic.readthedocs.io/en/latest/license.html
.. _RFC 8446: https://datatracker.ietf.org/doc/html/rfc8446
.. _RFC 9000: https://datatracker.ietf.org/doc/html/rfc9000
.. _RFC 9114: https://datatracker.ietf.org/doc/html/rfc9114
.. _RFC 9220: https://datatracker.ietf.org/doc/html/rfc9220
.. _RFC 9297: https://datatracker.ietf.org/doc/html/rfc9297
.. _RFC 9368: https://datatracker.ietf.org/doc/html/rfc9368
.. _RFC 9369: https://datatracker.ietf.org/doc/html/rfc9369
Raw data
{
"_id": null,
"home_page": null,
"name": "aioquic",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": null,
"author": null,
"author_email": "Jeremy Lain\u00e9 <jeremy.laine@m4x.org>",
"download_url": "https://files.pythonhosted.org/packages/6b/0c/858bb02e0ff96b40735b09ed7be25690197851e4c1bcde51af3348c851fc/aioquic-1.3.0.tar.gz",
"platform": null,
"description": "aioquic\n=======\n\n.. image:: https://img.shields.io/pypi/l/aioquic.svg\n :target: https://pypi.python.org/pypi/aioquic\n :alt: License\n\n.. image:: https://img.shields.io/pypi/v/aioquic.svg\n :target: https://pypi.python.org/pypi/aioquic\n :alt: Version\n\n.. image:: https://img.shields.io/pypi/pyversions/aioquic.svg\n :target: https://pypi.python.org/pypi/aioquic\n :alt: Python versions\n\n.. image:: https://github.com/aiortc/aioquic/workflows/tests/badge.svg\n :target: https://github.com/aiortc/aioquic/actions\n :alt: Tests\n\n.. image:: https://img.shields.io/codecov/c/github/aiortc/aioquic.svg\n :target: https://codecov.io/gh/aiortc/aioquic\n :alt: Coverage\n\n.. image:: https://readthedocs.org/projects/aioquic/badge/?version=latest\n :target: https://aioquic.readthedocs.io/\n :alt: Documentation\n\nWhat is ``aioquic``?\n--------------------\n\n``aioquic`` is a library for the QUIC network protocol in Python. It features\na minimal TLS 1.3 implementation, a QUIC stack and an HTTP/3 stack.\n\n``aioquic`` is used by Python opensource projects such as `dnspython`_,\n`hypercorn`_, `mitmproxy`_ and the `Web Platform Tests`_ cross-browser test\nsuite. It has also been used extensively in research papers about QUIC.\n\nTo learn more about ``aioquic`` please `read the documentation`_.\n\nWhy should I use ``aioquic``?\n-----------------------------\n\n``aioquic`` has been designed to be embedded into Python client and server\nlibraries wishing to support QUIC and / or HTTP/3. The goal is to provide a\ncommon codebase for Python libraries in the hope of avoiding duplicated effort.\n\nBoth the QUIC and the HTTP/3 APIs follow the \"bring your own I/O\" pattern,\nleaving actual I/O operations to the API user. This approach has a number of\nadvantages including making the code testable and allowing integration with\ndifferent concurrency models.\n\nA lot of effort has gone into writing an extensive test suite for the\n``aioquic`` code to ensure best-in-class code quality, and it is regularly\n`tested for interoperability`_ against other `QUIC implementations`_.\n\nFeatures\n--------\n\n- minimal TLS 1.3 implementation conforming with `RFC 8446`_\n- QUIC stack conforming with `RFC 9000`_ (QUIC v1) and `RFC 9369`_ (QUIC v2)\n * IPv4 and IPv6 support\n * connection migration and NAT rebinding\n * logging TLS traffic secrets\n * logging QUIC events in QLOG format\n * version negotiation conforming with `RFC 9368`_\n- HTTP/3 stack conforming with `RFC 9114`_\n * server push support\n * WebSocket bootstrapping conforming with `RFC 9220`_\n * datagram support conforming with `RFC 9297`_\n\nInstalling\n----------\n\nThe easiest way to install ``aioquic`` is to run:\n\n.. code:: bash\n\n pip install aioquic\n\nBuilding from source\n--------------------\n\nIf there are no wheels for your system or if you wish to build ``aioquic``\nfrom source you will need the OpenSSL development headers.\n\nLinux\n.....\n\nOn Debian/Ubuntu run:\n\n.. code-block:: console\n\n sudo apt install libssl-dev python3-dev\n\nOn Alpine Linux run:\n\n.. code-block:: console\n\n sudo apk add openssl-dev python3-dev bsd-compat-headers libffi-dev\n\nOS X\n....\n\nOn OS X run:\n\n.. code-block:: console\n\n brew install openssl\n\nYou will need to set some environment variables to link against OpenSSL:\n\n.. code-block:: console\n\n export CFLAGS=-I$(brew --prefix openssl)/include\n export LDFLAGS=-L$(brew --prefix openssl)/lib\n\nWindows\n.......\n\nOn Windows the easiest way to install OpenSSL is to use `Chocolatey`_.\n\n.. code-block:: console\n\n choco install openssl\n\nYou will need to set some environment variables to link against OpenSSL:\n\n.. code-block:: console\n\n $Env:INCLUDE = \"C:\\Progra~1\\OpenSSL\\include\"\n $Env:LIB = \"C:\\Progra~1\\OpenSSL\\lib\"\n\nRunning the examples\n--------------------\n\n`aioquic` comes with a number of examples illustrating various QUIC usecases.\n\nYou can browse these examples here: https://github.com/aiortc/aioquic/tree/main/examples\n\nLicense\n-------\n\n``aioquic`` is released under the `BSD license`_.\n\n.. _read the documentation: https://aioquic.readthedocs.io/en/latest/\n.. _dnspython: https://github.com/rthalley/dnspython\n.. _hypercorn: https://github.com/pgjones/hypercorn\n.. _mitmproxy: https://github.com/mitmproxy/mitmproxy\n.. _Web Platform Tests: https://github.com/web-platform-tests/wpt\n.. _tested for interoperability: https://interop.seemann.io/\n.. _QUIC implementations: https://github.com/quicwg/base-drafts/wiki/Implementations\n.. _cryptography: https://cryptography.io/\n.. _Chocolatey: https://chocolatey.org/\n.. _BSD license: https://aioquic.readthedocs.io/en/latest/license.html\n.. _RFC 8446: https://datatracker.ietf.org/doc/html/rfc8446\n.. _RFC 9000: https://datatracker.ietf.org/doc/html/rfc9000\n.. _RFC 9114: https://datatracker.ietf.org/doc/html/rfc9114\n.. _RFC 9220: https://datatracker.ietf.org/doc/html/rfc9220\n.. _RFC 9297: https://datatracker.ietf.org/doc/html/rfc9297\n.. _RFC 9368: https://datatracker.ietf.org/doc/html/rfc9368\n.. _RFC 9369: https://datatracker.ietf.org/doc/html/rfc9369\n",
"bugtrack_url": null,
"license": null,
"summary": "An implementation of QUIC and HTTP/3",
"version": "1.3.0",
"project_urls": {
"Changelog": "https://aioquic.readthedocs.io/en/stable/changelog.html",
"Documentation": "https://aioquic.readthedocs.io/",
"Homepage": "https://github.com/aiortc/aioquic"
},
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "c7419a6cf092f2d21768091969dccd4723270f4cd8138d00097160d9c8eabeb8",
"md5": "bfcd10dc20d55e938dad119f7b7a9d1e",
"sha256": "59da070ff0f55a54f5623c9190dbc86638daa0bcf84bbdb11ebe507abc641435"
},
"downloads": -1,
"filename": "aioquic-1.3.0-cp310-abi3-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "bfcd10dc20d55e938dad119f7b7a9d1e",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 1922701,
"upload_time": "2025-10-11T09:16:10",
"upload_time_iso_8601": "2025-10-11T09:16:10.971011Z",
"url": "https://files.pythonhosted.org/packages/c7/41/9a6cf092f2d21768091969dccd4723270f4cd8138d00097160d9c8eabeb8/aioquic-1.3.0-cp310-abi3-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9eeaac91850a3e6c915802d8c0ee782f966ddfaeed9f870696c1cdb98b25c9a1",
"md5": "5af7a1cb0e9fe386afa7fa66f9165c0f",
"sha256": "48590fa38ec13f01a3d4e44fb3cfd373661094c9c7248f3c54d2d9512b6c3469"
},
"downloads": -1,
"filename": "aioquic-1.3.0-cp310-abi3-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "5af7a1cb0e9fe386afa7fa66f9165c0f",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 2240281,
"upload_time": "2025-10-11T09:16:12",
"upload_time_iso_8601": "2025-10-11T09:16:12.895240Z",
"url": "https://files.pythonhosted.org/packages/9e/ea/ac91850a3e6c915802d8c0ee782f966ddfaeed9f870696c1cdb98b25c9a1/aioquic-1.3.0-cp310-abi3-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a865383f3b3921e1d6b9b757bff3c805c24f7180eda690aecb5e8df50eb7b028",
"md5": "bbda74b69182ead7358b8881da2a2928",
"sha256": "019b16580d53541b5d77b4a44a61966921156554fad2536d74895713c800caa5"
},
"downloads": -1,
"filename": "aioquic-1.3.0-cp310-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "bbda74b69182ead7358b8881da2a2928",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 2752433,
"upload_time": "2025-10-11T09:16:14",
"upload_time_iso_8601": "2025-10-11T09:16:14.724281Z",
"url": "https://files.pythonhosted.org/packages/a8/65/383f3b3921e1d6b9b757bff3c805c24f7180eda690aecb5e8df50eb7b028/aioquic-1.3.0-cp310-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b90066f9a2f95db35ccbe1d9384d44beae28072fceec6ca0ffa29f6c640516c2",
"md5": "a4e00fd6d10a7f7bf619d4ca06d465bb",
"sha256": "396e5f53f6ddb27713d9b5bb11d8f0f842e42857b7e671c5ae203bf618528550"
},
"downloads": -1,
"filename": "aioquic-1.3.0-cp310-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "a4e00fd6d10a7f7bf619d4ca06d465bb",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 2445180,
"upload_time": "2025-10-11T09:16:17",
"upload_time_iso_8601": "2025-10-11T09:16:17.136093Z",
"url": "https://files.pythonhosted.org/packages/b9/00/66f9a2f95db35ccbe1d9384d44beae28072fceec6ca0ffa29f6c640516c2/aioquic-1.3.0-cp310-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d57af020815b9fa6ea9b83354deb213b90a25fd01466f5a8e517e1c0e672be8c",
"md5": "999b0d7c9e2de2ceb94e6761d6328c99",
"sha256": "4098afc6337adf19bdb54474f6c37983988e7bfa407892a277259c32eb664b00"
},
"downloads": -1,
"filename": "aioquic-1.3.0-cp310-abi3-manylinux_2_28_i686.whl",
"has_sig": false,
"md5_digest": "999b0d7c9e2de2ceb94e6761d6328c99",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 2361800,
"upload_time": "2025-10-11T09:16:18",
"upload_time_iso_8601": "2025-10-11T09:16:18.685955Z",
"url": "https://files.pythonhosted.org/packages/d5/7a/f020815b9fa6ea9b83354deb213b90a25fd01466f5a8e517e1c0e672be8c/aioquic-1.3.0-cp310-abi3-manylinux_2_28_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "87bea141aafe8984ed380e610397d606a9d9818ef30ce352aa9ede048a966d81",
"md5": "31923c4ea6e4ea2e4143b50e406f2d16",
"sha256": "48292279a248422b6289fffd82159eba8d8b35ff4b1f660b9f74ff85e10ca265"
},
"downloads": -1,
"filename": "aioquic-1.3.0-cp310-abi3-musllinux_1_2_aarch64.whl",
"has_sig": false,
"md5_digest": "31923c4ea6e4ea2e4143b50e406f2d16",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 2797515,
"upload_time": "2025-10-11T09:16:20",
"upload_time_iso_8601": "2025-10-11T09:16:20.451065Z",
"url": "https://files.pythonhosted.org/packages/87/be/a141aafe8984ed380e610397d606a9d9818ef30ce352aa9ede048a966d81/aioquic-1.3.0-cp310-abi3-musllinux_1_2_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5250b421e7aedff4a96840bf8734c2c11c18a8434c780c0cb59dff7f0906cee8",
"md5": "a09c724dde6b2980940e2b100f86b305",
"sha256": "0538acdfbf839d87b175676664737c248cd51f1a2295c5fef8e131ddde478a86"
},
"downloads": -1,
"filename": "aioquic-1.3.0-cp310-abi3-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "a09c724dde6b2980940e2b100f86b305",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 2388628,
"upload_time": "2025-10-11T09:16:21",
"upload_time_iso_8601": "2025-10-11T09:16:21.661826Z",
"url": "https://files.pythonhosted.org/packages/52/50/b421e7aedff4a96840bf8734c2c11c18a8434c780c0cb59dff7f0906cee8/aioquic-1.3.0-cp310-abi3-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "bcf43c674f4608883e7fc7212f067c599d1321b0c5dd45bda5c77ab5a1e73924",
"md5": "1a6b8d7b2139c5459f9028378de0ff0e",
"sha256": "a8881239801279188e33ced6f9849cedf033325a48a6f44d7e55e583abc555a3"
},
"downloads": -1,
"filename": "aioquic-1.3.0-cp310-abi3-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "1a6b8d7b2139c5459f9028378de0ff0e",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 2465059,
"upload_time": "2025-10-11T09:16:23",
"upload_time_iso_8601": "2025-10-11T09:16:23.474074Z",
"url": "https://files.pythonhosted.org/packages/bc/f4/3c674f4608883e7fc7212f067c599d1321b0c5dd45bda5c77ab5a1e73924/aioquic-1.3.0-cp310-abi3-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "23f27b1908feffb29b89d2f6d4adc583e83543cd559676354f85c5b4b77a6428",
"md5": "1e14001f0a78dd5df2b1e57b3fa82f32",
"sha256": "ba30016244e45d9222fdd1fbd4e8b0e5f6811e81a5d0643475ad7024a537274a"
},
"downloads": -1,
"filename": "aioquic-1.3.0-cp310-abi3-win32.whl",
"has_sig": false,
"md5_digest": "1e14001f0a78dd5df2b1e57b3fa82f32",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 1326532,
"upload_time": "2025-10-11T09:16:25",
"upload_time_iso_8601": "2025-10-11T09:16:25.971489Z",
"url": "https://files.pythonhosted.org/packages/23/f2/7b1908feffb29b89d2f6d4adc583e83543cd559676354f85c5b4b77a6428/aioquic-1.3.0-cp310-abi3-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "82454e47404984d65ee31cc9e1370f1fbc4e8c92b25da71f61429dbdba437246",
"md5": "53889d0749023f431f5931a38f196018",
"sha256": "2d7957ba14a6c5efcc14fdc685ccda7ecf0ad048c410a2bdcad1b63bf9527e8e"
},
"downloads": -1,
"filename": "aioquic-1.3.0-cp310-abi3-win_amd64.whl",
"has_sig": false,
"md5_digest": "53889d0749023f431f5931a38f196018",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 1675068,
"upload_time": "2025-10-11T09:16:27",
"upload_time_iso_8601": "2025-10-11T09:16:27.258173Z",
"url": "https://files.pythonhosted.org/packages/82/45/4e47404984d65ee31cc9e1370f1fbc4e8c92b25da71f61429dbdba437246/aioquic-1.3.0-cp310-abi3-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4360a8cb5f85c5a6a3cc630124a45644ca5a0ab3eecae2df558b6e0ab7847e1c",
"md5": "331239f90307550338634dab18ffece6",
"sha256": "9d15a89213d38cbc4679990fa5151af8ea02655a1d6ce5ec972b0a6af74d5f1c"
},
"downloads": -1,
"filename": "aioquic-1.3.0-cp310-abi3-win_arm64.whl",
"has_sig": false,
"md5_digest": "331239f90307550338634dab18ffece6",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 1234825,
"upload_time": "2025-10-11T09:16:28",
"upload_time_iso_8601": "2025-10-11T09:16:28.994400Z",
"url": "https://files.pythonhosted.org/packages/43/60/a8cb5f85c5a6a3cc630124a45644ca5a0ab3eecae2df558b6e0ab7847e1c/aioquic-1.3.0-cp310-abi3-win_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6b0c858bb02e0ff96b40735b09ed7be25690197851e4c1bcde51af3348c851fc",
"md5": "58822aa87ace0c23cb7e507440eb6f00",
"sha256": "28d070b2183e3e79afa9d4e7bd558960d0d53aeb98bc0cf0a358b279ba797c92"
},
"downloads": -1,
"filename": "aioquic-1.3.0.tar.gz",
"has_sig": false,
"md5_digest": "58822aa87ace0c23cb7e507440eb6f00",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 181923,
"upload_time": "2025-10-11T09:16:30",
"upload_time_iso_8601": "2025-10-11T09:16:30.910476Z",
"url": "https://files.pythonhosted.org/packages/6b/0c/858bb02e0ff96b40735b09ed7be25690197851e4c1bcde51af3348c851fc/aioquic-1.3.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-11 09:16:30",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "aiortc",
"github_project": "aioquic",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "aioquic"
}