You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
uvloop is a fast, drop-in replacement of the built-in asyncio
event loop. uvloop is implemented in Cython and uses libuv
under the hood.
The project documentation can be found
here. Please also check out the
wiki.
Performance
uvloop makes asyncio 2-4x faster.
The above chart shows the performance of an echo server with different
message sizes. The sockets benchmark uses loop.sock_recv() and
loop.sock_sendall() methods; the streams benchmark uses asyncio
high-level streams, created by the asyncio.start_server() function;
and the protocol benchmark uses loop.create_server() with a simple
echo protocol. Read more about uvloop in a
blog post
about it.
Installation
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 to upgrade pip before installing
uvloop with:
$ pip install -U pip
Using uvloop
As of uvloop 0.18, the preferred way of using it is via the
uvloop.run() helper function:
importuvloopasyncdefmain():
# Main entry-point.
...
uvloop.run(main())
uvloop.run() works by simply configuring asyncio.run()
to use uvloop, passing all of the arguments to it, such as debug,
e.g. uvloop.run(main(), debug=True).
With Python 3.11 and earlier the following alternative
snippet can be used: