Skip to content

Releases: tokio-rs/tokio

Tokio v1.0.2

15 Jan 00:43
5d35c90
Compare
Choose a tag to compare

Fixed

  • io: soundness in read_to_end (#3428).

Tokio v1.0.1

25 Dec 21:23
2330edc
Compare
Choose a tag to compare

This release fixes a soundness hole caused by the combination of RwLockWriteGuard::map and RwLockWriteGuard::downgrade by removing the map function. This is a breaking change, but breaking changes are allowed under our semver policy when they are required to fix a soundness hole. (See this RFC for more.)

Note that we have chosen not to do a deprecation cycle or similar because Tokio 1.0.0 was released two days ago, and therefore the impact should be minimal.

Due to the soundness hole, we have also yanked Tokio version 1.0.0.

Removed

  • sync: remove RwLockWriteGuard::map and RwLockWriteGuard::try_map (#3345)

Fixed

  • docs: remove stream feature from docs (#3335)

Tokio v1.0.0

23 Dec 17:35
a66017f
Compare
Choose a tag to compare

Commit to the API and long-term support.

Announcement and more details.

Fixed

  • sync: spurious wakeup in watch (#3234).

Changed

  • io: rename AsyncFd::with_io() to try_io() (#3306)
  • fs: avoid OS specific *Ext traits in favor of conditionally defining the fn (#3264).
  • fs: Sleep is !Unpin (#3278).
  • net: pass SocketAddr by value (#3125).
  • net: TcpStream::poll_peek takes ReadBuf (#3259).
  • rt: rename runtime::Builder::max_threads() to max_blocking_threads() (#3287).
  • time: require current_thread runtime when calling time::pause() (#3289).

Removed

  • remove tokio::prelude (#3299).
  • io: remove AsyncFd::with_poll() (#3306).
  • net: remove {Tcp,Unix}Stream::shutdown() in favor of AsyncWrite::shutdown() (#3298).
  • stream: move all stream utilities to tokio-stream until Stream is added to
    std (#3277).
  • sync: mpsc try_recv() due to unexpected behavior (#3263).
  • tracing: make unstable as tracing-core is not 1.0 yet (#3266).

Added

  • fs: poll_* fns to DirEntry (#3308).
  • io: poll_* fns to io::Lines, io::Split (#3308).
  • io: _mut method variants to AsyncFd (#3304).
  • net: poll_* fns to UnixDatagram (#3223).
  • net: UnixStream readiness and non-blocking ops (#3246).
  • sync: UnboundedReceiver::blocking_recv() (#3262).
  • sync: watch::Sender::borrow() (#3269).
  • sync: Semaphore::close() (#3065).
  • sync: poll_recv fns to mpsc::Receiver, mpsc::UnboundedReceiver (#3308).
  • time: poll_tick fn to time::Interval (#3316).

Tokio v0.3.6

17 Dec 10:43
176c809
Compare
Choose a tag to compare

Released December 14, 2020

Fixed

  • rt: fix deadlock in shutdown (#3228)
  • rt: fix panic in task abort when off rt (#3159)
  • sync: make add_permits panic with usize::MAX >> 3 permits (#3188)
  • time: Fix race condition in timer drop (#3229)
  • watch: fix spurious wakeup (#3244)

Added

  • example: add back udp-codec example (#3205)
  • net: add TcpStream::into_std (#3189)

Tokio v0.3.5

02 Dec 22:13
0854858
Compare
Choose a tag to compare

Fixed

  • rt: fix shutdown_timeout(0) (#3196).
  • time: fixed race condition with small sleeps (#3069).

Added

  • io: AsyncFd::with_interest() (#3167).
  • signal: CtrlC stream on windows (#3186).

Tokio v0.3.4

18 Nov 21:32
479c545
Compare
Choose a tag to compare

Fixed

  • stream: StreamMap Default impl bound (#3093).
  • io: AsyncFd::into_inner() should deregister the FD (#3104).

Changed

  • meta: parking_lot feature enabled with full (#3119).

Added

  • io: AsyncWrite vectored writes (#3149).
  • net: TCP/UDP readiness and non-blocking ops (#3130, #2743, #3138).
  • net: TCP socket option (linger, send/recv buf size) (#3145, #3143).
  • net: PID field in UCred with solaris/illumos (#3085).
  • rt: runtime::Handle allows spawning onto a runtime (#3079).
  • sync: Notify::notify_waiters() (#3098).
  • sync: acquire_many(), try_acquire_many() to Semaphore (#3067).

Tokio v0.2.23

12 Nov 19:42
c63057e
Compare
Choose a tag to compare

Maintenance release.

Fixes

  • time: report correct error for timers that exceed max duration (#2023)
  • time: fix resetting expired timers causing panics (#2587)
  • macros: silence unreachable_code warning in select! (#2678)
  • rt: fix potential leak during runtime shutdown (#2649)
  • sync: fix missing notification during mpsc close (#2854)

Changes

  • io: always re-export std::io (#2606)
  • dependencies: update parking_lot dependency to 0.11.0 (#2676)
  • io: rewrite read_to_end and read_to_string (#2560)
  • coop: reset coop budget when blocking in block_on (#2711)
  • sync: better Debug for Mutex (#2725)
  • net: make UnixListener::poll_accept public (#2880)
  • dep: raise lazy_static to 1.4.0 (#3132)
  • dep: raise slab to 0.4.2 (#3132)

Added

  • io: add io::duplex() as bidirectional reader/writer (#2661)
  • net: introduce split and into_split on UnixDatagram (#2557)
  • net: ensure that unix sockets have both split and into_split (#2687)
  • net: add try_recv/from & try_send/to to UnixDatagram (#1677)
  • net: Add UdpSocket::{try_send,try_send_to} methods (#1979)
  • net: implement ToSocketAddrs for (String, u16) (#2724)
  • io: add ReaderStream (#2714)
  • sync: implement map methods (#2771)

Tokio v0.3.3

02 Nov 23:38
42de3bc
Compare
Choose a tag to compare

Fixes a soundness hole by adding a missing Send bound to Runtime::spawn_blocking().

Fixed

  • rt: include missing Send, fixing soundness hole (#3089).
  • tracing: avoid huge trace span names (#3074).

Added

  • net: TcpSocket::reuseport(), TcpSocket::set_reuseport() (#3083).
  • net: TcpSocket::reuseaddr() (#3093).
  • net: TcpSocket::local_addr() (#3093).
  • net: add pid to UCred (#2633).

Tokio v0.3.2

27 Oct 22:37
9097ae5
Compare
Choose a tag to compare

Adds AsyncFd as a replacement for v0.2's PollEvented.

Fixed

  • io: fix a potential deadlock when shutting down the I/O driver (#2903).
  • sync: RwLockWriteGuard::downgrade() bug (#2957).

Added

  • io: AsyncFd for receiving readiness events on raw FDs (#2903).
  • net: poll_* function on UdpSocket (#2981).
  • net: UdpSocket::take_error() (#3051).
  • sync: oneshot::Sender::poll_closed() (#3032).

Tokio v0.3.1

21 Oct 23:27
d14cbf9
Compare
Choose a tag to compare

This release fixes a use-after-free in the IO driver. Additionally, the read_buf
and write_buf methods have been added back to the IO traits, as the bytes crate
is now on track to reach version 1.0 together with Tokio.

Fixed

  • net: fix use-after-free (#3019).
  • fs: ensure buffered data is written on shutdown (#3009).

Added

  • io: copy_buf() (#2884).
  • io: AsyncReadExt::read_buf(), AsyncReadExt::write_buf() for working with
    Buf/BufMut (#3003).
  • rt: Runtime::spawn_blocking() (#2980).
  • sync: watch::Sender::is_closed() (#2991).