{"id":13461690,"url":"https://github.com/aiortc/aioquic","last_synced_at":"2025-05-14T03:07:17.868Z","repository":{"id":38287042,"uuid":"169165755","full_name":"aiortc/aioquic","owner":"aiortc","description":"QUIC and HTTP/3 implementation in Python","archived":false,"fork":false,"pushed_at":"2024-08-08T07:37:55.000Z","size":1919,"stargazers_count":1679,"open_issues_count":18,"forks_count":238,"subscribers_count":41,"default_branch":"main","last_synced_at":"2024-10-29T15:33:12.239Z","etag":null,"topics":["asyncio","http3","network","python","quic","tls"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aiortc.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-02-04T23:27:58.000Z","updated_at":"2024-10-28T00:44:32.000Z","dependencies_parsed_at":"2023-02-09T08:01:40.986Z","dependency_job_id":"f407a9e3-0ee4-4237-95a6-90d6916f88d9","html_url":"https://github.com/aiortc/aioquic","commit_stats":{"total_commits":1035,"total_committers":22,"mean_commits":47.04545454545455,"dds":0.03188405797101446,"last_synced_commit":"444be09157aed3c81881d18647484165dd07139c"},"previous_names":[],"tags_count":46,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aiortc%2Faioquic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aiortc%2Faioquic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aiortc%2Faioquic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aiortc%2Faioquic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aiortc","download_url":"https://codeload.github.com/aiortc/aioquic/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247607593,"owners_count":20965944,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["asyncio","http3","network","python","quic","tls"],"created_at":"2024-07-31T11:00:52.703Z","updated_at":"2025-04-09T02:13:06.644Z","avatar_url":"https://github.com/aiortc.png","language":"Python","readme":"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","funding_links":[],"categories":["HarmonyOS","Python","语言资源库","框架和开源实现","Implementations"],"sub_categories":["Windows Manager","python","Python"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faiortc%2Faioquic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faiortc%2Faioquic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faiortc%2Faioquic/lists"}