uvloop is an ultra fast, drop-in replacement for Python’s built-in asyncio event loop. It is implemented in Cython and uses libuv, making it useful for speeding up asyncio networking workloads. The project provides a `uvloop.run()` helper (or `uvloop.install()`) to start asyncio using the uvloop event loop.
Project status
- The repository appears actively maintained, with a recent upstream push on 2026-05-04, and the most recent tagged updates (v0.22.0, v0.22.1) from 2025-10.
- Update cadence looks uneven but healthy recently: a long gap after v0.21.0 (2024-10-14), then two updates in quick succession in 2025-10 (v0.22.0 at 19:26 UTC, v0.22.1 the same day at 22:16 UTC).
AI summary generated 2 weeks ago
Recent updates
v0.22.1
7 months agoRelease v0.22.1 claims to be identical to v0.22.0, re-run with CI fixes. The code diff is limited to the GitHub Actions workflow for publishing to PyPI and the package version constant.
v0.22.0
7 months agov0.22.0 focuses on Python 3.14 compatibility and adds support for CPython free-threading builds. The diff also includes several packaging and CI updates to build and test additional Python variants, including 3.14 and 3.14t.
Featuresv0.21.0
10/14/2024v0.21.0 primarily updates packaging/build metadata, with no runtime code changes shown in the diff from v0.21.0beta1 to v0.21.0. The only code-related modification visible is the version string update, plus a CI workflow update to a newer cibuildwheel action.
v0.21.0beta1
9/3/2024v0.21.0beta1 adds CI coverage for Python 3.13 and updates build tooling (notably cibuildwheel and Cython requirements). The code changes also introduce new UNIX socket cleanup behavior and adjust internal UDP/TLS related handling, but the release notes section is empty so these changes are not documented.
Featuresv0.20.0
8/15/2024v0.20.0 upgrades the bundled libuv dependency and includes a few build/test reliability fixes. The release notes mention libuv 1.48.0, a Python 3.12 test fix, switching to sched_getaffinity for build parallelism, and inlining _Py_RestoreSignals from CPython. The code diff also shows additional, user-visible DNS behavior changes and new security regression tests that are not described in the release notes.
v0.19.0
10/22/2023v0.19.0 drops Python 3.7 support, updating package metadata, build/runtime checks, docs, and CI to require Python 3.8+. Most other code changes are ancillary (typing/docs fixes and CI workflow maintenance), with a larger internal refactor in `uvloop.__init__` focused on improving typing.
Breakingv0.18.0
10/13/2023v0.18.0 is primarily focused on CI and Python 3.12 compatibility. The release notes mention making `extract_stack` more resilient and porting to Python 3.12, plus a set of CI workflow fixes.
v0.17.0
9/14/2022v0.17.0 adds Python 3.11 support and bumps the bundled libuv to 1.43.0. It also exposes additional libuv integration points (uv_loop_t pointer, uv_fs_event functionality, and uv_version) and includes a set of bug fixes related to asyncio/uvloop edge cases.
BreakingFeaturesv0.16.0
8/10/2021v0.16.0 adds Python 3.10 support, updates the bundled vendored libuv to 1.42.0, and introduces a small API addition for timer handles. It also contains several SSL and threading related fixes and adjusts the project build/test automation to use cibuildwheel for wheel creation.
Featuresv0.15.3
7/13/2021v0.15.3 contains targeted bug fixes related to SSLProtocol wakeup/data ordering and thread-safety of call_soon_threadsafe. It also includes internal scheduling changes in the loop implementation to make ready-handle enqueueing safer under concurrency.