Skip to content

Releases: tokio-rs/tokio

Tokio v1.20.5

27 May 21:18
edd172c
Compare
Choose a tag to compare

1.20.5 (May 28, 2023)

Forward ports 1.18.6 changes.

Fixed

  • deps: disable default features for mio (#5728)

Tokio v1.18.6

27 May 21:17
0f898a3
Compare
Choose a tag to compare

1.18.6 (May 28, 2023)

Fixed

  • deps: disable default features for mio (#5728)

Tokio v1.28.1

10 May 09:35
a26fc9c
Compare
Choose a tag to compare

1.28.1 (May 10th, 2023)

This release fixes a mistake in the build script that makes AsFd implementations unavailable on Rust 1.63. (#5677)

Tokio v1.28.0

25 Apr 18:25
f21d596
Compare
Choose a tag to compare

1.28.0 (April 25th, 2023)

Added

  • io: add AsyncFd::async_io (#5542)
  • io: impl BufMut for ReadBuf (#5590)
  • net: add recv_buf for UdpSocket and UnixDatagram (#5583)
  • sync: add OwnedSemaphorePermit::semaphore (#5618)
  • sync: add same_channel to broadcast channel (#5607)
  • sync: add watch::Receiver::wait_for (#5611)
  • task: add JoinSet::spawn_blocking and JoinSet::spawn_blocking_on (#5612)

Changed

  • deps: update windows-sys to 0.48 (#5591)
  • io: make read_to_end not grow unnecessarily (#5610)
  • macros: make entrypoints more efficient (#5621)
  • sync: improve Debug impl for RwLock (#5647)
  • sync: reduce contention in Notify (#5503)

Fixed

  • net: support get_peer_cred on AIX (#5065)
  • sync: avoid deadlocks in broadcast with custom wakers (#5578)

Documented

  • sync: fix typo in Semaphore::MAX_PERMITS (#5645)
  • sync: fix typo in tokio::sync::watch::Sender docs (#5587)

Tokio v1.27.0

27 Mar 21:57
1df874e
Compare
Choose a tag to compare

1.27.0 (March 27th, 2023)

This release bumps the MSRV of Tokio to 1.56. (#5559)

Added

  • io: add async_io helper method to sockets (#5512)
  • io: add implementations of AsFd/AsHandle/AsSocket (#5514, #5540)
  • net: add UdpSocket::peek_sender() (#5520)
  • sync: add RwLockWriteGuard::{downgrade_map, try_downgrade_map} (#5527)
  • task: add JoinHandle::abort_handle (#5543)

Changed

  • io: use memchr from libc (#5558)
  • macros: accept path as crate rename in #[tokio::main] (#5557)
  • macros: update to syn 2.0.0 (#5572)
  • time: don't register for a wakeup when Interval returns Ready (#5553)

Fixed

  • fs: fuse std iterator in ReadDir (#5555)
  • tracing: fix spawn_blocking location fields (#5573)
  • time: clean up redundant check in Wheel::poll() (#5574)

Documented

  • macros: define cancellation safety (#5525)
  • io: add details to docs of tokio::io::copy[_buf] (#5575)
  • io: refer to ReaderStream and StreamReader in module docs (#5576)

Tokio v1.26.0

01 Mar 22:13
a377240
Compare
Choose a tag to compare

Fixed

  • macros: fix empty join! and try_join! (#5504)
  • sync: don't leak tracing spans in mutex guards (#5469)
  • sync: drop wakers after unlocking the mutex in Notify (#5471)
  • sync: drop wakers outside lock in semaphore (#5475)

Added

  • fs: add fs::try_exists (#4299)
  • net: add types for named unix pipes (#5351)
  • sync: add MappedOwnedMutexGuard (#5474)

Changed

  • chore: update windows-sys to 0.45 (#5386)
  • net: use Message Read Mode for named pipes (#5350)
  • sync: mark lock guards with #[clippy::has_significant_drop] (#5422)
  • sync: reduce contention in watch channel (#5464)
  • time: remove cache padding in timer entries (#5468)
  • time: Improve Instant::now() perf with test-util (#5513)

Internal Changes

  • io: use poll_fn in copy_bidirectional (#5486)
  • net: refactor named pipe builders to not use bitfields (#5477)
  • rt: remove Arc from Clock (#5434)
  • sync: make notify_waiters calls atomic (#5458)
  • time: don't store deadline twice in sleep entries (#5410)

Unstable

  • metrics: add a new metric for budget exhaustion yields (#5517)

Documented

  • io: improve AsyncFd example (#5481)
  • runtime: document the nature of the main future (#5494)
  • runtime: remove extra period in docs (#5511)
  • signal: updated Documentation for Signals (#5459)
  • sync: add doc aliases for blocking_* methods (#5448)
  • sync: fix docs for Send/Sync bounds in broadcast (#5480)
  • sync: document drop behavior for channels (#5497)
  • task: clarify what happens to spawned work during runtime shutdown (#5394)
  • task: clarify process::Command docs (#5413)
  • task: fix wording with 'unsend' (#5452)
  • time: document immediate completion guarantee for timeouts (#5509)
  • tokio: document supported platforms (#5483)

Tokio v1.25.0

29 Jan 21:46
88b1eb5
Compare
Choose a tag to compare

1.25.0 (January 28, 2023)

Fixed

  • rt: fix runtime metrics reporting (#5330)

Added

  • sync: add broadcast::Sender::len (#5343)

Changed

  • fs: increase maximum read buffer size to 2MiB (#5397)

Tokio v1.24.1

06 Jan 10:50
31c7e82
Compare
Choose a tag to compare

This release fixes a compilation failure on targets without AtomicU64 when using rustc older than 1.63. (#5356)

Tokio v1.24.0

05 Jan 19:25
dfe252d
Compare
Choose a tag to compare

The highlight of this release is the reduction of lock contention for all I/O operations (#5300). We have received reports of up to a 20% improvement in CPU utilization and increased throughput for real-world I/O heavy applications.

Fixed

  • rt: improve native AtomicU64 support detection (#5284)

Added

  • rt: add configuration option for max number of I/O events polled from the OS
    per tick (#5186)
  • rt: add an environment variable for configuring the default number of worker
    threads per runtime instance (#4250)

Changed

  • sync: reduce MPSC channel stack usage (#5294)
  • io: reduce lock contention in I/O operations (#5300)
  • fs: speed up read_dir() by chunking operations (#5309)
  • rt: use internal ThreadId implementation (#5329)
  • test: don't auto-advance time when a spawn_blocking task is running (#5115)

Tokio v1.23.1

04 Jan 19:15
1a997ff
Compare
Choose a tag to compare

This release forward ports changes from 1.18.4.

Fixed

  • net: fix Windows named pipe server builder to maintain option when toggling
    pipe mode (#5336).