uvloop

raw JSON →
0.22.1 verified Tue May 12 auth: no python install: verified quickstart: verified

uvloop is a fast, drop-in replacement for Python's built-in asyncio event loop, implemented in Cython and built on top of libuv. The current version is 0.22.1, and it follows a regular release cadence with active maintenance.

pip install uvloop
error ModuleNotFoundError: No module named 'uvloop'
cause The `uvloop` package has not been installed in the active Python environment.
fix
pip install uvloop
error error: Microsoft Visual C++ 14.0 or greater is required. Get it with 'Microsoft C++ Build Tools': https://visualstudio.microsoft.com/visual-cpp-build-tools/
cause `uvloop` is a Cython extension that requires a C compiler to build from source, which is often missing on Windows systems by default.
fix
Install the Microsoft C++ Build Tools via the provided link or Visual Studio Installer, then retry pip install uvloop.
error fatal error: 'uv.h' file not found
cause When `pip` attempts to build `uvloop` from source (e.g., if a pre-built wheel isn't available), the `libuv` development headers are missing from the system.
fix
Install the libuv development package for your operating system (e.g., sudo apt-get install libuv1-dev on Debian/Ubuntu, brew install libuv on macOS).
breaking uvloop does not support Windows at the moment.
fix Consider using a different event loop implementation on Windows.
breaking uvloop may not be compatible with Python versions beyond 3.13.
fix Verify compatibility with your Python version before using uvloop.
gotcha uvloop may not handle closed connections gracefully in certain scenarios.
fix Implement additional error handling to manage closed connections appropriately.
python os / libc status wheel install import disk
3.10 alpine (musl) - - 0.09s 27.2M
3.10 slim (glibc) - - 0.06s 31M
3.11 alpine (musl) - - 0.20s 29.3M
3.11 slim (glibc) - - 0.14s 33M
3.12 alpine (musl) - - 0.41s 23.1M
3.12 slim (glibc) - - 0.34s 28M
3.13 alpine (musl) - - 0.41s 22.7M
3.13 slim (glibc) - - 0.33s 27M
3.9 alpine (musl) - - 0.09s 26.6M
3.9 slim (glibc) - - 0.07s 30M

A basic example demonstrating how to use uvloop as the event loop for asyncio applications.

import asyncio
import uvloop

async def main():
    # Your asynchronous code here
    pass

uvloop.run(main())