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
- MagicStack/uvloop appears actively maintained, with an upstream push on 2026-05-04 and subsequent recent updates, including v0.22.0 and v0.22.1 (both dated 2025-10-16).
- The apparent update cadence is irregular but fairly recent, with the latest upstream activity in mid-2026, and prior version milestones roughly about yearly (2023, 2024, 2025) plus packaging and compatibility-focused updates in between.
AI summary generated
Recent updates
v0.22.1
Release 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
v0.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
v0.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
v0.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
v0.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
v0.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
v0.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
v0.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
v0.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
v0.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.