aioquic


Nameaioquic JSON
Version 1.3.0 PyPI version JSON
download
home_pageNone
SummaryAn implementation of QUIC and HTTP/3
upload_time2025-10-11 09:16:30
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
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"
}
        
Elapsed time: 2.30770s