Repository navigation
Releases: tokio-rs/tokio
Releases · tokio-rs/tokio
Release list
Tokio v1.53.2
1.53.2 (October 3rd, 2026)
Fixed
- fs: handle integer overflow in buffered relative seek (#8574)
- io: revert "always cleanup
AsyncFdregistration list on deregister" (#8540) - process: unregister Windows wait before closing child handle (#8564)
- rt: drop blocking pool mutex before shutting down rejected task (#8562)
- sync: fix mpsc index wraparound in block reclamation (#8546)
- sync: forget mpsc
Permitbefore sending value (#8560) - sync: validate
MAX_PERMITSinSemaphore::acquire(#8548) - sync: wake broadcast
Sender::closedoutside mutex (#8558) - task: drop replaced waker outside lock in
JoinSet(#8554) - time: drop timer lock before dropping waker in
clear_entry(#8552) - time: expire timers directly on shutdown without rotating wheel (#8570)
Fixed (unstable)
- fs: clamp
io_uringread length tou32::MAX(#8572) - rt: ignore
current_threadtask dumps from other runtimes (#8544) - rt: preserve
io_uringcontext if a completion waker panics (#8566) - sync: fix semaphore use-after-free and permit leak on tracing panic (#8542)
- taskdump: restore deferred leaf wakes during capture (#8445)
- time: drop stored waker when cancelling alt timer entry (#8550)
Tokio v1.51.5
1.51.5 (October 3rd, 2026)
Fixed
- fs: handle integer overflow in buffered relative seek (#8574)
- io: revert "always cleanup
AsyncFdregistration list on deregister" (#8540) - process: unregister Windows wait before closing child handle (#8564)
- rt: drop blocking pool mutex before shutting down rejected task (#8562)
- sync: fix mpsc index wraparound in block reclamation (#8546)
- sync: forget mpsc
Permitbefore sending value (#8560) - sync: validate
MAX_PERMITSinSemaphore::acquire(#8548) - sync: wake broadcast
Sender::closedoutside mutex (#8558) - task: drop replaced waker outside lock in
JoinSet(#8554) - time: drop timer lock before dropping waker in
clear_entry(#8552) - time: expire timers directly on shutdown without rotating wheel (#8570)
Fixed (unstable)
Tokio v1.53.1
Tokio v1.53.0
1.53.0 (July 17th, 2026)
Added
- fs: implement
From<OwnedFd>andFrom<OwnedHandle>forFile(#8266) - metrics: add task schedule latency metric (#7986)
- net: add
SocketAddrmethods to Unix sockets (#8144)
Changed
- io: add
#[inline]to IO trait impls for in-memory types (#8242) - net: implement UCred::pid on FreeBSD (#8086)
- net: support Nuttx target os (#8259)
- signal: refactor global variables on Windows (#8231)
- sync:
mpsc::{Receiver,UnboundedReceiver}now drops waker on drop, even if there are still senders (#8095) - taskdump: support taskdumps on s390x (#8192)
- time: add
#[track_caller]totimeout_at()(#8077) - time: consolidate mutex locks on spurious poll (#8124)
- time: defer waker clone on spurious poll (#8107)
- time: move lazy-registration state into
Sleep(#8132) - tracing: remove unnecessary span clone (#8126)
Fixed
- io: do not treat zero-length reads as EOF in
Chain(#8251) - net: use getpeereid for QNX peer credentials (#8270)
- runtime: avoid illegal state in
FastRand(#8078) - sync: wake mpsc receiver when a queued
reserve[_many]returns permits (#8260) - taskdump: skip double wake on
Trace::capture/Trace::trace_with(#8043) - time: avoid stack overflow in runtime constructor (#8093)
- time (alt timer): ensure timers stay in the same runtime after
.reset()(#8169)
IO uring (unstable)
- fs: use io-uring for
fs::try_exists(#8080) - fs: use io-uring for renaming files (#7800)
- rt: flush io-uring CQE in case of CQE overflow (#8277)
Documented
- docs: clarify cancel safety wording (#8181)
- fs: clarify
create_dir_allsucceeds if path exists (#8149) - io: add warning about stdout reordering with multiple handles (#8276)
- net: document pipe
try_read*/try_write*readiness behavior (#8032) - runtime: document interaction with fork() (#8202)
- sync: clarify broadcast lagging semantics (#8239)
- sync: document memory ordering guarantees for Semaphore (#8119)
- task: explain why
yield_nowdefers its waker (#8254) - time: add panic docs to
timeout_at()(#8077) - time: fix reversed poll order in timeout doc (#8214)
Tokio v1.52.4
Tokio v1.51.4
1.51.4 (July 16th, 2026)
Fixed
- runtime: don't skip the driver when
before_parkschedules work (#8222)
Tokio v1.52.3
Tokio v1.51.3
Tokio v1.47.5
Tokio v1.52.2
1.52.2 (May 4th, 2026)
This release reverts the LIFO slot stealing change introduced in 1.51.0 (#7431), due to its performance impact. (#8100)