GitPedia
MagicStack

MagicStack/uvloop

Ultra fast asyncio event loop.

30 Releases
Latest: 8mo ago
v0.22.1Latest
github-actions[bot]github-actions[bot]·8mo ago·October 16, 2025
GitHub

This is identical to 0.22.0, re-ran with CI fixes

v0.22.0
github-actions[bot]github-actions[bot]·8mo ago·October 16, 2025
GitHub

📋 Changes

  • Fixes for Python 3.14 (#638)
  • Add free-threading support (#693)
  • Use Cython `enum` for `__PREALLOCED_BUFS` (#634)
  • test: fix getaddrinfo test (#663)
  • test: fix task name for Python 3.13.3/3.14 (#662)
v0.21.0
github-actions[bot]github-actions[bot]·1y ago·October 14, 2024
GitHub

📋 Changes

  • Add cleanup_socket param on create_unix_server()
  • Use cythonized SO_REUSEPORT rather than the unwrapped native one. (#609)
  • UDP errors should result in protocol.error_received (#601)
  • Updates for Cython3 (#587)
  • Test with Python 3.13 (#610)
v0.21.0beta1
github-actions[bot]github-actions[bot]·1y ago·September 3, 2024
GitHub
v0.20.0
github-actions[bot]github-actions[bot]·1y ago·August 15, 2024
GitHub

📋 Changes

  • Upgrade libuv to v1.48.0 (#600)
  • Fix test_create_server_4 with Python 3.12.5 (#614)
  • Use len(os.sched_getaffinity(0)) instead of os.cpu_count() (#591)
  • Inline _Py_RestoreSignals() from CPython (#604)
v0.19.0
github-actions[bot]github-actions[bot]·2y ago·October 22, 2023
GitHub

📋 Changes

  • Drop support of Python 3.7 and update CI (#578)
  • Restore uvloop.new_event_loop and other missing uvloop members to typing (#573)
  • Fix docstring of loop.shutdown_default_executor (#535)
  • Fix CI status badge (#522)
v0.18.0
github-actions[bot]github-actions[bot]·2y ago·October 13, 2023
GitHub

📋 Changes

  • CI fixes (#520, #553)
  • Make extract_stack resilient to lacking frames. (#563)
  • Port uvloop to Python 3.12 (#570)
v0.17.0
github-actions[bot]github-actions[bot]·3y ago·September 14, 2022
GitHub

📋 Changes

  • Expose uv_loop_t pointer for integration with other C-extensions (#310)
  • Support python 3.11+ (#473)
  • Expose libuv uv_fs_event functionality (#474)
  • Activate debug mode when `-X dev` is used
  • Expose uv_version() for libuv API compatibility (#491)
  • Fix loop.getaddrinfo() and tests (#495)
  • Bump to libuv 1.43.0
  • _TransProtPair is no longer defined in asyncio.events
  • + 19 more
v0.16.0
github-actions[bot]github-actions[bot]·4y ago·August 10, 2021
GitHub

📋 Changes

  • Python 3.10 support (#432)
  • Bump vendored libuv to 1.42.0 (#433)
  • Use cibuildwheel to build wheels (#435)
  • Add support for `<timer handle>.when()`
  • Fix ref issue when protocol is in Cython
  • Set `python_requires` in setup.py
  • SSL: schedule first data after waiter wakeup
  • Fix a possible race condition in sslproto test
  • + 1 more
v0.15.3
github-actions[bot]github-actions[bot]·4y ago·July 13, 2021
GitHub

📋 Changes

  • SSL: schedule first data after waiter wakeup
  • Fix a possible race condition in sslproto test
  • Fix `call_soon_threadsafe` thread safety
v0.15.2
github-actions[bot]github-actions[bot]·5y ago·February 19, 2021
GitHub

📋 Changes

  • Add `python_requires` in `setup.py` to fix dependency resolution issues
v0.15.1
github-actions[bot]github-actions[bot]·5y ago·February 15, 2021
GitHub

📋 Changes

  • Fix a segfault issue when a Cython protocol is de-referencing itself from `Context.run()` callbacks
v0.15.0
github-actions[bot]github-actions[bot]·5y ago·February 10, 2021
GitHub

📋 Changes

  • Add name keyword argument to `loop.create_task()`
  • Add typing support
  • SSL: many improvements
  • Fix `KeyboardInterrupt` handling logic
  • Python 3.8/3.9 compatibility fixes, drop support for 3.5/3.6
  • UDP: multiple bug fixes
  • Pipe: a critical crash fix that affects subprocess, pipe and socketpair
  • Restore context on protocol callbacks
  • + 7 more
v0.14.0
1st11st1·6y ago·November 5, 2019
GitHub

📋 Changes

  • Add support for Python 3.8.
  • Multiple fixes in the SSL/TLS layer.
  • Restore `signal.wakeup_fd` after the event loop is closed.
  • Handle large timeouts in `loop.call_later()`.
  • Fix possible feezing of uvloop on `os.fork`.
  • Better handle Unix sockets for datagram transports.
  • Avoid double connecting to `remote_addr` for datagram transports.
  • Bump Cython to 0.29.13.
  • + 1 more
v0.14.0rc2Pre-release
1st11st1·6y ago·October 29, 2019
GitHub

📦 See the full list of updates in [0.14.0rc1 release notes](https://github.com/MagicStack/uvloop/releases/tag/v0.14.0rc1).

  • Fix libuv not waking up on SIGINT.
  • (by @1st1 in c32c703 for #295)
  • Fix SSL proto to better handle EOF.
  • (by @fantix in 6476aad)
v0.14.0rc1v0.14.0rc1Pre-release
1st11st1·6y ago·October 25, 2019
GitHub

📋 Changes

  • Add support for Python 3.8.
  • Multiple fixes in the SSL/TLS layer.
  • Restore `signal.wakeup_fd` after the event loop is closed.
  • Handle large timeouts in `loop.call_later()`.
  • Fix possible feezing of uvloop on `os.fork`.
  • Better handle Unix sockets for datagram transports.
  • Avoid double connecting to `remote_addr` for datagram transports.
  • Bump Cython to 0.29.13.
  • + 1 more
v0.13.0
1st11st1·6y ago·August 14, 2019
GitHub

📋 Changes

  • Implement `Server.start_serving()` and related APIs.
  • Make `Server` an asynchronous context manager.
  • Start using high-performance `uv_udp_t` handle. This
  • Make address validation faster in `udp.sendto()`.
  • `OSError` is no longer logged by Transports.
  • Upgrade to libuv `v1.31.0`.
  • Use `manylinux-2010`. This means we no longer provide
v0.13.0rc1v0.13.0rc1Pre-release
1st11st1·7y ago·April 25, 2019
GitHub

📋 Changes

  • Implement `Server.start_serving()` and related APIs.
  • Make `Server` an asynchronous context manager.
  • Start using high-performance `uv_udp_t` handle. This
  • Make address validation faster in `udp.sendto()`.
  • Upgrade to libuv `v1.28.0`.
  • Use `manylinux-2010`. This means we no longer provide
v0.12.2
1st11st1·7y ago·March 20, 2019
GitHub

📋 Changes

  • Fix circular references in SSL implementation to reduce
  • Fix a memory leak in `call_later()` and `call_at()`.
  • Fix compilation warnings.
  • Round (instead of flooring) delay in `call_later()`.
v0.12.1
1st11st1·7y ago·February 12, 2019
GitHub

📋 Changes

  • Fix a circular references case in SSL implementation.
  • Cleanup references to callbacks in canceled callback handles.
v0.12.0
1st11st1·7y ago·January 21, 2019
GitHub

📋 Changes

  • New SSL implementation. The new implementation is faster and
  • New `uvloop.install()` helper function.
  • All bug fixes from `0.11.0`—`0.11.3` are included in
  • `ssl.CertificateError` is no longer logged as it's delivered to
  • Don't use non-existent `UDPTransport._address` attribute.
  • Improve `UDPTransport.sendto()` performance.
  • Upgrade Cython `0.28.x` -> `0.29.0`.
  • Upgrade libuv `v1.22.0` -> `v1.23.0`.
v0.12.0rc1Pre-release
1st11st1·7y ago·November 1, 2018
GitHub

📋 Changes

  • New SSL implementation. The new implementation is faster and
  • New `uvloop.install()` helper function.
  • All bug fixes from `0.11.0`—`0.11.3` are included in
  • `ssl.CertificateError` is no longer logged as it's delivered to
  • Upgrade Cython `0.28.x` -> `0.29.0`.
  • Upgrade libuv `v1.22.0` -> `v1.23.0`.
v0.11.3
1st11st1·7y ago·October 31, 2018
GitHub

📋 Changes

  • Use new `PyOS_BeforeFork` and `PyOS_AfterFork_*` 3.7 APIs when available
  • Fix async generators finalization to function correctly in debug mode
  • Pass `backlog` to `loop.create_unix_server()` when a server is created via
  • Don't raise "requires a DNS lookup" error on Unix Domain Socket (#204)
  • Fix use of `PyContext*` APIs in 3.7.1
  • Bump Cython to 0.28.5
v0.11.2
1st11st1·7y ago·August 7, 2018
GitHub

📋 Changes

  • Fix a memory leak related to contextvars support.
v0.10.3
1st11st1·7y ago·August 7, 2018
GitHub

📋 Changes

  • Fix a memory leak in contextvars support.
v0.11.1
1st11st1·7y ago·August 2, 2018
GitHub

📋 Changes

  • Fix server to shutdown when alive connections exist
  • Fix a few bugs and crashes in UDP layer
  • Fix FD leakage if spawning a subprocess fails
  • Fix libuv process handles leak when `uv_spawn()` fails
v0.11.0
1st11st1·7y ago·July 5, 2018
GitHub

📋 Changes

  • Implement support for `BufferedProtocol`.
  • Implement `loop.start_tls()`.
  • Add `Server.get_loop()`.
  • Fix Server to wait in wait_closed() until all transports are done.
  • SSLTransport.abort() should mark the transport as closed.
  • Fix 3.7 32bit builds.
  • `setup.py`: Detect if the libuv submodule has not been checked out.
  • Fix race between futures cancellation and `loop.remove_reader()` /
  • + 1 more
v0.10.2
1st11st1·7y ago·June 25, 2018
GitHub

📋 Changes

  • Use a proper type for the thread indent (fixes 32-bit build for 3.7.)
  • Fix cancellation race in `loop.sock_recv()` and `loop.sock_recv_into()`
  • Sync SSL error messages with CPython's SSL implementation.
  • Fix `SSLTransport.abort()` to mark the transport as closed.
  • Detect if libuv submodule has not been checked out in `setup.py`.
v0.10.1
1st11st1·8y ago·June 1, 2018
GitHub

📋 Changes

  • Bump Cython from 0.28.2 to 0.28.3.
  • Increase default SSL handshake timeout to 60 seconds.
  • Add `ssl_handshake_timeout` parameter to `loop.create_connection()`,
  • Consistently close transports if create_server/create_connection/etc
v0.10.0
1st11st1·8y ago·May 30, 2018
GitHub

📋 Changes

  • Initial support for Python 3.7.
  • Implement PEP 567 support (contextvars module) for Python 3.7.
  • Add uvloop's own version of `asyncio/sslproto.py`. SSL is now ~50% faster.
  • Convert Future-returning loop methods to coroutines to match asyncio 3.7.
  • Allow file objects to be passed to `loop.subprocess*()` functions.
  • Make signals processing more reliable.
  • Prohibit adding a signal handler for `SIGCHLD`.
  • Add `uvloop.__version__`.
  • + 6 more