Skip to content

Tags: fantix/uvloop

Tags

v0.10.1

Toggle v0.10.1's commit message
v0.10.1

* Bump Cython from 0.28.2 to 0.28.3.
  (by @1st1 in 5044d24)

* Increase default SSL handshake timeout to 60 seconds.
  (by @1st1 in 70c332c)

* Add `ssl_handshake_timeout` parameter to `loop.create_connection()`,
  `loop.create_server()`, `loop.create_unix_connection()`,
  `loop.create_unix_server()`, `loop.connect_accepted_socket()`.
  (by @1st1 in 68dd733)

* Consistently close transports if create_server/create_connection/etc
  timeout or cancelled.
  (by @1st1 in ac90d8b and 77ee4f9)

v0.10.0

Toggle v0.10.0's commit message
v0.10.0

New Features
------------

* Support Python 3.7.
  (by @pfreixes in c3a5ec8 for MagicStack#138)

* Implement PEP 567 support (contextvars module) for Python 3.7.
  (by @1st1 in 2a4fab4, 878e416, and b2bdaae for MagicStack#155)

* Add uvloop's own version of `asyncio/sslproto.py`. SSL is now ~50% faster.
  (by @1st1 in 4d91264)

* Convert Future-returning loop methods to coroutines.
  (by @1st1 in 7384b22)

* Allow file objects to be passed to `loop.subprocess*` functions.
  (by @1st1 in f083090 for MagicStack#136)

* Make signals processing more reliable.
  (by @1st1 in 6e03e51)

* Prohibit adding a signal handler for `SIGCHLD`.
  (by @1st1 in cd53b7f for MagicStack#156)

* Add `uvloop.__version__`.
  (by @1st1 in 740cb7f for MagicStack#137)

Bug Fixes
---------

* Upgrade to Cython 0.28.2.
  (by @1st1 in 98bdb55 for MagicStack#122)

* Update libuv from v1.17.0 to v1.20.3.
  (by @1st1 in 572524a)

* Make sure UDP handles are cleaned-up properly.
  (by @1st1 in 13f63e0)

* Fix `subprocess.close()` to let its processes die gracefully.
  (by @1st1 in a78e4d2 and a455af3 for MagicStack#128)

* Fix `sock_connect()` to resolve addresses for correct socket family.
  (by @1st1 in ce2bd4f for MagicStack#139)

* Fix a race condition in SSL handshake.
  (by @1st1 in 447e124)

v0.9.1

Toggle v0.9.1's commit message
v0.9.1

* Stop using malloc for `uv_request*` handlers.

* Fix `loop.add_reader()`, `loop.add_writer()`, `loop.remove_reader()`,
  and `loop.remove_writer()` to better track socket objects.

* Fix `loop.sock_recv()`, `loop.sock_sendall()`, `loop.sock_recv_into()`,
  and `loop.sock_connect()` to correctly handle `Task.cancel()`.

* Better handle immediate cancellation of `loop.create_connection()`.

* Make unit tests stricter: ensure `loop.call_exception_handler()`
  does not get called, unless it's expected.

v0.9.0

Toggle v0.9.0's commit message
v0.9.0

TCP & UDP

* `transport.get_extra_info('socket')` now returns a socket-like
  object.  It supports socket methods like `setsockopts()`, but
  prohibits `send()`, `recv()`, `close()` and any other calls that
  can interfere with the transport that ultimately owns this file
  descriptor.

* `TCP_NODELAY` is used by default for all TCP connections.

* Make `Transport.resume_reading()` and `pause_reading()` idempotent.
  This will match asyncio in Python 3.7.  Issue MagicStack#93.

* `loop.create_server()` keeps a strong reference to the `Server`
  object it returns until its closed.  Fixes MagicStack#81.

* Fix `loop.connect_accepted_socket()` to return correct SSL
  transport.

* The UDP transport layer was rewritten from scratch.  Now it uses
  `uv_poll_*` libuv APIs, instead of high-level `uv_udp_*` ones.
  This could mean a slight performance regression, and will be
  reverted when we port uvloop to Windows.  For now this is
  the only viable option to make uvloop fully compatible with asyncio.
  When libuv gets an API to connect UDP sockets, `uv_udp_connect()`,
  we'll be able to switch to a better UDP implementation.  Issue MagicStack#109.

* `UDPTransport.sendto(data, addr)` will raise an exception if
  `addr` requires a name resolution.  Issue MagicStack#91.

Low-level sockets

* `loop.add_reader()` and `loop.add_writer()` accept file-like
  objects.  Issue MagicStack#97.

* `loop.sock_connect()` supports 4 element address tuples for
  IPv6 sockets.  Issue MagicStack#99.

* Protect sockets from closing while they are in use by
  `loop.sock_*()` methods.  Close all reader/writer sockets the
  loop owns when it closes.  Issue MagicStack#100.

Other event loop APIs

* `loop.run_until_complete()` cleans up done callbacks in all
  situations.  By @jimmylai in 804364c, dc3b77b.
  See also Python issue: https://bugs.python.org/issue30423.

* New `uv_loop_fork()` libuv API is used in `loop.subprocess_shell()`
  and `loop.subprocess_exec()` making them more stable.  Issue MagicStack#39.

* `loop.call_later()` accepts infinite time `float('inf')`.
  Issue MagicStack#102.

* `loop.subprocess_exec()` accepts `pathlib.Path` objects for its
  `cwd` parameter.  Issue MagicStack#90.

* Support `pathlib.Path` objects in `loop.create_unix_connection()`
  and `loop.create_unix_server()`.

* Try removing existing stale Unix socket paths in
  `loop.create_unix_server()`.

* `ascii` encoding is tried before encoding with `idna`.
  Issue MagicStack#95.

* Fix `slow_callback_duration` repr in warnings for callback handles
  and Tasks.  Issue MagicStack#103.

Python 3.7

Some APIs that will be available in Python 3.7 in vanilla asyncio,
but can be used with uvloop today.

* Implement `.cancelled()` method for callback and timer handles.

* Add `Transport.is_reading()`.

* Implement `loop.sock_recv_into()`.

Miscellaneous

* Drop custom uvloop Future and Task implementations.  This means
  that there will be a tiny performance regression for Python 3.5
  deploys.

* Limit stack traces in debug mode to make it faster.

* `signal.siginterrupt` is now used by signals machinery to let
  system calls to be repeated by default, instead of raising an
  `EINTR`.

Build

* libuv in uvloop has been upgraded from v1.11.0 to v1.17.0.  Aside
  from bug fixes and performance improvements, libuv survives
  `fork`.

* `LIBUV_CONFIGURE_HOST` environment variable can be used to
  cross-compile uvloop/libuv.  By @cmcqueen, for issue MagicStack#104.

* uvloop is now compatible with Python 3.7.0a1.  Issue MagicStack#110.

* Cyhton was upgraded from 0.25.2 to 0.27.3.

* uvloop binary is linked with `pthread`.  By @frederikaalund,
  for issue MagicStack#87.

v0.8.1

Toggle v0.8.1's commit message
v0.8.1

* Fix create_datagram_endpoint to work with AF_INET6 and no local_addr

v0.8.0

Toggle v0.8.0's commit message
v0.8.0

* uvloop is declared stable and production ready;
* Add support for DragonFlyBSD;
* Update libuv: v1.10.1 -> v1.11.0.

v0.7.2

Toggle v0.7.2's commit message

Verified

This tag was signed with the committer’s verified signature.
elprans Elvis Pranskevichus
uvloop-0.7.2

v0.7.1

Toggle v0.7.1's commit message

Verified

This tag was signed with the committer’s verified signature.
elprans Elvis Pranskevichus
uvloop v0.7.1

v0.7.0

Toggle v0.7.0's commit message

Verified

This tag was signed with the committer’s verified signature.
elprans Elvis Pranskevichus
uvloop-0.7.0

v0.6.8

Toggle v0.6.8's commit message
v0.6.8

- Add loop.shutdown_asyncgens() method.