- Notifications
You must be signed in to change notification settings - Fork558
Ultra fast asyncio event loop.
License
Apache-2.0, MIT licenses found
Licenses found
MagicStack/uvloop
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
uvloop is a fast, drop-in replacement of the built-in asyncioevent loop. uvloop is implemented in Cython and uses libuvunder the hood.
The project documentation can be foundhere. Please also check out thewiki.
uvloop makes asyncio 2-4x faster.

The above chart shows the performance of an echo server with differentmessage sizes. Thesockets benchmark usesloop.sock_recv()
andloop.sock_sendall()
methods; thestreams benchmark uses asynciohigh-level streams, created by theasyncio.start_server()
function;and theprotocol benchmark usesloop.create_server()
with a simpleecho protocol. Read more about uvloop in ablog postabout it.
uvloop requires Python 3.8 or greater and is available on PyPI.Use pip to install it:
$ pip install uvloop
Note that it is highly recommended toupgrade pip before installinguvloop with:
$ pip install -U pip
As of uvloop 0.18, the preferred way of using it is via theuvloop.run()
helper function:
importuvloopasyncdefmain():# Main entry-point. ...uvloop.run(main())
uvloop.run()
works by simply configuringasyncio.run()
to use uvloop, passing all of the arguments to it, such asdebug
,e.g.uvloop.run(main(), debug=True)
.
With Python 3.11 and earlier the following alternativesnippet can be used:
importasyncioimportsysimportuvloopasyncdefmain():# Main entry-point. ...ifsys.version_info>= (3,11):withasyncio.Runner(loop_factory=uvloop.new_event_loop)asrunner:runner.run(main())else:uvloop.install()asyncio.run(main())
To build uvloop, you'll need Python 3.8 or greater:
Clone the repository:
$ git clone --recursive git@github.com:MagicStack/uvloop.git$ cd uvloop
Create a virtual environment and activate it:
$ python3 -m venv uvloop-dev$ source uvloop-dev/bin/activate
Install development dependencies:
$ pip install -e .[dev]
Build and run tests:
$ make$ make test
uvloop is dual-licensed under MIT and Apache 2.0 licenses.
About
Ultra fast asyncio event loop.