{"id":13396928,"url":"https://github.com/MagicStack/uvloop","last_synced_at":"2025-03-13T23:31:52.483Z","repository":{"id":37336579,"uuid":"45766550","full_name":"MagicStack/uvloop","owner":"MagicStack","description":"Ultra fast asyncio event loop.","archived":false,"fork":false,"pushed_at":"2024-10-15T15:33:47.000Z","size":2044,"stargazers_count":10724,"open_issues_count":133,"forks_count":556,"subscribers_count":223,"default_branch":"master","last_synced_at":"2025-03-10T23:25:50.144Z","etag":null,"topics":["async","async-await","async-python","asyncio","event-loop","high-performance","libuv","networking","python","python-3"],"latest_commit_sha":null,"homepage":"","language":"Cython","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MagicStack.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","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":"2015-11-08T04:14:54.000Z","updated_at":"2025-03-10T20:39:15.000Z","dependencies_parsed_at":"2024-06-18T10:37:08.887Z","dependency_job_id":"d5274b59-9b4f-46b2-9e45-f6a335dffe81","html_url":"https://github.com/MagicStack/uvloop","commit_stats":{"total_commits":950,"total_committers":70,"mean_commits":"13.571428571428571","dds":"0.21052631578947367","last_synced_commit":"7bb12a174884b2ec8b3162a08564e5fb8a5c6b39"},"previous_names":[],"tags_count":83,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MagicStack%2Fuvloop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MagicStack%2Fuvloop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MagicStack%2Fuvloop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MagicStack%2Fuvloop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MagicStack","download_url":"https://codeload.github.com/MagicStack/uvloop/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243500213,"owners_count":20300759,"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":["async","async-await","async-python","asyncio","event-loop","high-performance","libuv","networking","python","python-3"],"created_at":"2024-07-30T18:01:07.916Z","updated_at":"2025-03-13T23:31:52.470Z","avatar_url":"https://github.com/MagicStack.png","language":"Cython","readme":".. image:: https://img.shields.io/github/actions/workflow/status/MagicStack/uvloop/tests.yml?branch=master\n    :target: https://github.com/MagicStack/uvloop/actions/workflows/tests.yml?query=branch%3Amaster\n\n.. image:: https://img.shields.io/pypi/v/uvloop.svg\n    :target: https://pypi.python.org/pypi/uvloop\n\n.. image:: https://pepy.tech/badge/uvloop\n    :target: https://pepy.tech/project/uvloop\n    :alt: PyPI - Downloads\n\n\nuvloop is a fast, drop-in replacement of the built-in asyncio\nevent loop.  uvloop is implemented in Cython and uses libuv\nunder the hood.\n\nThe project documentation can be found\n`here \u003chttp://uvloop.readthedocs.org/\u003e`_.  Please also check out the\n`wiki \u003chttps://github.com/MagicStack/uvloop/wiki\u003e`_.\n\n\nPerformance\n-----------\n\nuvloop makes asyncio 2-4x faster.\n\n.. image:: https://raw.githubusercontent.com/MagicStack/uvloop/master/performance.png\n    :target: http://magic.io/blog/uvloop-blazing-fast-python-networking/\n\nThe above chart shows the performance of an echo server with different\nmessage sizes.  The *sockets* benchmark uses ``loop.sock_recv()`` and\n``loop.sock_sendall()`` methods; the *streams* benchmark uses asyncio\nhigh-level streams, created by the ``asyncio.start_server()`` function;\nand the *protocol* benchmark uses ``loop.create_server()`` with a simple\necho protocol.  Read more about uvloop in a\n`blog post \u003chttp://magic.io/blog/uvloop-blazing-fast-python-networking/\u003e`_\nabout it.\n\n\nInstallation\n------------\n\nuvloop requires Python 3.8 or greater and is available on PyPI.\nUse pip to install it::\n\n    $ pip install uvloop\n\nNote that it is highly recommended to **upgrade pip before** installing\nuvloop with::\n\n    $ pip install -U pip\n\n\nUsing uvloop\n------------\n\nAs of uvloop 0.18, the preferred way of using it is via the\n``uvloop.run()`` helper function:\n\n\n.. code:: python\n\n    import uvloop\n\n    async def main():\n        # Main entry-point.\n        ...\n\n    uvloop.run(main())\n\n``uvloop.run()`` works by simply configuring ``asyncio.run()``\nto use uvloop, passing all of the arguments to it, such as ``debug``,\ne.g. ``uvloop.run(main(), debug=True)``.\n\nWith Python 3.11 and earlier the following alternative\nsnippet can be used:\n\n.. code:: python\n\n    import asyncio\n    import sys\n\n    import uvloop\n\n    async def main():\n        # Main entry-point.\n        ...\n\n    if sys.version_info \u003e= (3, 11):\n        with asyncio.Runner(loop_factory=uvloop.new_event_loop) as runner:\n            runner.run(main())\n    else:\n        uvloop.install()\n        asyncio.run(main())\n\n\nBuilding From Source\n--------------------\n\nTo build uvloop, you'll need Python 3.8 or greater:\n\n1. Clone the repository:\n\n   .. code::\n\n    $ git clone --recursive git@github.com:MagicStack/uvloop.git\n    $ cd uvloop\n\n2. Create a virtual environment and activate it:\n\n   .. code::\n\n    $ python3 -m venv uvloop-dev\n    $ source uvloop-dev/bin/activate\n\n3. Install development dependencies:\n\n   ..  code::\n\n    $ pip install -e .[dev]\n\n4. Build and run tests:\n\n   .. code::\n\n    $ make\n    $ make test\n\n\nLicense\n-------\n\nuvloop is dual-licensed under MIT and Apache 2.0 licenses.\n","funding_links":[],"categories":["Asynchronous Programming","Cython","Concurrency and Parallelism","资源列表","Python","Data Format \u0026 I/O","Topics Index","Python 程序","Asynchronous Programming [🔝](#readme)","备选事件循环","Alternative Loops","异步编程","网络","Awesome Python"],"sub_categories":["并发和并行","Design Patterns","For Python","QoL Libraries","网络服务_其他","Concurrency and Parallelism","Drone Frames"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMagicStack%2Fuvloop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMagicStack%2Fuvloop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMagicStack%2Fuvloop/lists"}