Back to Explore

MagicStack/uvloop

GitHub
1 watchersOpen source

Last release: 7 months ago

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

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v0.22.1

    7 months ago

    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

    7 months ago

    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.

    Features
  • v0.21.0

    10/14/2024

    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

    9/3/2024

    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.

    Features
  • v0.20.0

    8/15/2024

    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

    10/22/2023

    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.

    Breaking
  • v0.18.0

    10/13/2023

    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

    9/14/2022

    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.

    BreakingFeatures
  • v0.16.0

    8/10/2021

    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.

    Features
  • v0.15.3

    7/13/2021

    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.