Update Rust crate tokio to v1.54.0 #20

Open
renovate wants to merge 1 commit from renovate/tokio-1.x-lockfile into main
Collaborator

This PR contains the following updates:

Package Type Update Change
tokio (source) dependencies minor 1.49.0 → 1.54.0

Release Notes

tokio-rs/tokio (tokio)

v1.54.0: Tokio v1.54.0

Compare Source

1.54.0 (October 19th, 2026)

The 1.54.0 release includes all changes up to 1.53.3.

The MSRV is increased to 1.85. (#​8514)

Added
  • fs: add File::set_times, File::set_modified, and fs::FileTimes (#​8504)
  • net: implement Default for named_pipe::{ClientOptions, ServerOptions} (#​8378)
  • runtime: add Builder::max_io_events_per_busy_tick (#​8410)
  • runtime: stabilize tokio::runtime::worker_index() (#​8431)
  • sync: add SemaphorePermit::semaphore() (#​8482)
  • sync: add blocking_acquire methods to Semaphore (#​8269)
  • sync: add watch::Receiver::is_closed (#​8481)
  • wasm: support JSPI for Emscripten target (#​8285, #​8627)
  • wasm: support the wasm32-unknown-emscripten target (#​8281, #​8422, #​8528, #​8628)
Changed
  • fs: reject zero in File::set_max_buf_size (#​8449)
  • io: make copy_buf cooperative (#​8459)
  • io: panic when BufReader or BufStream is created with zero capacity (#​8494)
  • io: panic when in-memory pipe is created with zero capacity (#​8397)
  • io: reject zero buffer size in copy_bidirectional_with_sizes (#​8454)
  • io: support vectored writes in Sink (#​8663)
  • net: start UnixStream::pair and UnixDatagram::pair sockets as writable (#​8444)
  • net: start accepted sockets as readable and writable (#​8435)
  • net: support UCred on Fuchsia (#​8257)
  • process: use mio::unix::pipe for Unix child stdio (#​8603)
  • runtime: cache-pad the shared injection queue and idle state (#​8622)
  • runtime: decide auto-boxing of spawned futures at monomorphization time (#​8414)
  • runtime: make enable_io available whenever rt is enabled (#​8387)
  • runtime: move block_in_place setup into a non-generic function (#​8315)
  • runtime: move the multi-thread inject queue to its own mutex (#​8382)
  • runtime: panic when max_io_events_per_tick is zero (#​8476)
  • runtime: suggest .await in nested block_on panic message (#​8501)
  • sync: avoid atomic reader count in broadcast slots (#​8357)
  • sync: use acquire/release orderings in Notify (#​8325)
  • time: remove the runtime handle from timers (#​8458)
Fixed
  • fs: restore File internal state when op fails (#​8291)
  • io: complete zero-length memory stream operations immediately (#​8323)
  • io: flush the writer when the reader stalls in copy_buf (#​8424)
  • io: keep the shutdown bit when clearing readiness (#​8435)
  • io: preserve the full ScheduledIo tick in readiness events (#​8331)
  • io: read lines as bytes so a partial line survives an I/O error (#​8400)
  • io: retry on ErrorKind::Interrupted in more I/O operations (#​8417, #​8432, #​8448, #​8453, #​8455, #​8460)
  • io: use spawn_mandatory_blocking for stdout and stderr (#​8506)
  • io: wait for pending operations before BufReader seeks (#​8599)
  • net: close CreateFileW handle on SetNamedPipeHandleState failure (#​8418)
  • net: fix peer credentials on NetBSD (#​8589)
  • net: saturate TcpSocket and UnixSocket listen backlog (#​8511)
  • net: treat ENOTCONN as success in UnixStream::shutdown (#​8526)
  • runtime: allow building with --all-features without tokio_unstable (#​8401)
  • runtime: avoid overflow in shutdown_timeout() (#​8497)
  • runtime: fix spawn_blocking hang when only scheduler workers exist (#​8408)
  • runtime: fix misleading signal driver panic message (#​8419)
  • sync: preserve FIFO lock order when coop budget is exhausted (#​8371)
  • sync: use usize for permit count in SemaphorePermit (#​8405)
  • time: avoid interval deadline overflow (#​8385)
  • time: handle wrapped top-level timer-wheel slots (#​8334)
Unstable
  • fs: fall back when io_uring has no IO driver (#​8165)
  • metrics: cap log histogram precision (#​8496)
  • runtime: add an opt-in sharded spawn_blocking queue (#​8337)
  • runtime: expose schedule latency in task hooks (#​8282)
  • taskdump: fix idle bookkeeping when a task dump wakes parked workers (#​8372)
  • taskdump: skip non-idle tasks during taskdumps (#​8568)
Documented
  • docs: fix stray braces and broken links in rustdoc (#​8605)
  • fs: document cancellation behavior of tokio::fs (#​8265)
  • net: add Safety docs for named pipe from_raw_handle (#​8378)
  • net: document that TcpStream::connect returns only the last error (#​8421)
  • runtime: add error documentation for runtime::Builder (#​8297)
  • runtime: link available_parallelism in worker count docs (#​8625)
  • sync: clarify panic behavior of broadcast::channel() (#​8420)
  • sync: fix typo in Semaphore documentation (#​8521)

v1.53.3: Tokio v1.53.3

Compare Source

1.53.3 (October 13th, 2026)

Added
  • io: add AsyncFd::register and AsyncFd::register_with_interest (#​8587)
Changed
  • io: deprecate AsyncFd::{new, with_interest, try_new, try_with_interest} (#​8587)
Fixed
  • io: wake and drop DuplexStream wakers outside the lock (#​8618)
  • macros: avoid unreachable_code in join! and try_join! for Infallible (#​8518)
  • runtime: fix paused time auto-advancing when I/O wakes a task on current_thread (#​8595)
  • sync: wake waiters outside the lock when closing a semaphore (#​8529)
  • test: fix several flaky tests (#​8196, #​8427, #​8609)
Fixed (unstable)
  • rt: keep io_uring op alive when submission fails after push (#​8185)

v1.53.2: Tokio v1.53.2

Compare Source

1.53.2 (October 3rd, 2026)

Fixed
  • fs: handle integer overflow in buffered relative seek (#​8574)
  • io: revert "always cleanup AsyncFd registration 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 Permit before sending value (#​8560)
  • sync: validate MAX_PERMITS in Semaphore::acquire (#​8548)
  • sync: wake broadcast Sender::closed outside 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_uring read length to u32::MAX (#​8572)
  • rt: ignore current_thread task dumps from other runtimes (#​8544)
  • rt: preserve io_uring context 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)

v1.53.1: Tokio v1.53.1

Compare Source

1.53.1 (July 20th, 2026)

Fixed
  • signal: restore MSRV by removing OnceLock::wait from the Windows handler (#​8300)
Fixed (unstable)
  • time: fix alt timer cancellation and insertion race (#​8252)
Documented
  • runtime: remove dead link definition in Runtime::block_on (#​8301)

v1.53.0: Tokio v1.53.0

Compare Source

1.53.0 (July 17th, 2026)

Added
  • fs: implement From<OwnedFd> and From<OwnedHandle> for File (#​8266)
  • metrics: add task schedule latency metric (#​7986)
  • net: add SocketAddr methods 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] to timeout_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_all succeeds 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_now defers its waker (#​8254)
  • time: add panic docs to timeout_at() (#​8077)
  • time: fix reversed poll order in timeout doc (#​8214)

v1.52.4: Tokio v1.52.4

Compare Source

1.52.4 (July 16th, 2026)

Fixed
  • runtime: don't skip the driver when before_park schedules work (#​8222)
Fixed (unstable)
  • taskdump: remove crate disambiguators from output (#​8264)

v1.52.3: Tokio v1.52.3

Compare Source

1.52.3 (May 8th, 2026)

Fixed
  • sync: fix underflow in mpsc channel len() (#​8062)
  • sync: notify receivers in mpsc OwnedPermit::release() method (#​8075)
  • sync: require that an RwLock has max_readers != 0 (#​8076)
  • sync: return Empty from try_recv() when mpsc is closed with outstanding permits (#​8074)

v1.52.2: Tokio v1.52.2

Compare Source

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)

v1.52.1: Tokio v1.52.1

Compare Source

1.52.1 (April 16th, 2026)

Fixed

v1.52.0: Tokio v1.52.0

Compare Source

1.52.0 (April 14th, 2026)

Added

  • io: AioSource::register_borrowed for I/O safety support (#​7992)
  • net: add try_io function to unix::pipe sender and receiver types (#​8030)

Added (unstable)

  • runtime: Builder::enable_eager_driver_handoff setting enable eager hand off of the I/O and time drivers before polling tasks (#​8010)
  • taskdump: add trace_with() for customized task dumps (#​8025)
  • taskdump: allow impl FnMut() in trace_with instead of just fn() (#​8040)
  • fs: support io_uring in AsyncRead for File (#​7907)

Changed

  • runtime: improve spawn_blocking scalability with sharded queue (#​7757)
  • runtime: use compare_exchange_weak() in worker queue (#​8028)

Fixed

  • runtime: overflow second half of tasks when local queue is filled instead of first half (#​8029)

Documented

  • docs: fix typo in oneshot::Sender::send docs (#​8026)
  • docs: hide #[tokio::main] attribute in the docs of sync::watch (#​8035)
  • net: add docs on ConnectionRefused errors with UDP sockets (#​7870)

v1.51.6: Tokio v1.51.6

Compare Source

1.51.6 (October 13th, 2026)

Added
  • io: add AsyncFd::register and AsyncFd::register_with_interest (#​8587)
Changed
  • io: deprecate AsyncFd::{new, with_interest, try_new, try_with_interest} (#​8587)
Fixed
  • io: wake and drop DuplexStream wakers outside the lock (#​8618)
  • macros: avoid unreachable_code in join! and try_join! for Infallible (#​8518)
  • runtime: fix paused time auto-advancing when I/O wakes a task on current_thread (#​8595)
  • sync: wake waiters outside the lock when closing a semaphore (#​8529)
  • test: fix several flaky tests (#​8196, #​8427, #​8609)

v1.51.5: Tokio v1.51.5

Compare Source

1.51.5 (October 3rd, 2026)

Fixed
  • fs: handle integer overflow in buffered relative seek (#​8574)
  • io: revert "always cleanup AsyncFd registration 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 Permit before sending value (#​8560)
  • sync: validate MAX_PERMITS in Semaphore::acquire (#​8548)
  • sync: wake broadcast Sender::closed outside 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)
  • rt: ignore current_thread task dumps from other runtimes (#​8544)
  • rt: preserve io_uring context if a completion waker panics (#​8566)
  • sync: fix semaphore use-after-free and permit leak on tracing panic (#​8542)
  • time: drop stored waker when cancelling alt timer entry (#​8550)

v1.51.4: Tokio v1.51.4

Compare Source

1.51.4 (July 16th, 2026)

Fixed
  • runtime: don't skip the driver when before_park schedules work (#​8222)

v1.51.3: Tokio v1.51.3

Compare Source

1.51.3 (May 8th, 2026)

Fixed
  • sync: fix underflow in mpsc channel len() (#​8062)
  • sync: notify receivers in mpsc OwnedPermit::release() method (#​8075)
  • sync: require that an RwLock has max_readers != 0 (#​8076)
  • sync: return Empty from try_recv() when mpsc is closed with outstanding permits (#​8074)

v1.51.2: Tokio v1.51.1

Compare Source

1.51.2 (May 4th, 2026)

This release reverts the LIFO slot stealing change introduced in 1.51.0 (#​7431), due to its performance impact. (#​8100)

v1.51.1: Tokio v1.51.1

Compare Source

1.51.1 (April 8th, 2026)

Fixed
  • sync: fix semaphore reopens after forget (#​8021)
  • net: surface errors from SO_ERROR on recv for UDP sockets on Linux (#​8001)
Fixed (unstable)
  • metrics: fix worker_local_schedule_count test (#​8008)
  • rt: do not leak fd when cancelling io_uring open operation (#​7983)

v1.51.0: Tokio v1.51.0

Compare Source

1.51.0 (April 3rd, 2026)

Added
  • net: implement get_peer_cred on Hurd (#​7989)
  • runtime: add tokio::runtime::worker_index() (#​7921)
  • runtime: add runtime name (#​7924)
  • runtime: stabilize LocalRuntime (#​7557)
  • wasm: add wasm32-wasip2 networking support (#​7933)
Changed
  • runtime: steal tasks from the LIFO slot (#​7431)
Fixed
  • docs: do not show "Available on non-loom only." doc label (#​7977)
  • macros: improve overall macro hygiene (#​7997)
  • sync: fix notify_waiters priority in Notify (#​7996)
  • sync: fix panic in Chan::recv_many when called with non-empty vector on closed channel (#​7991)

v1.50.0: Tokio v1.50.0

Compare Source

1.50.0 (Mar 3rd, 2026)

Added
  • net: add TcpStream::set_zero_linger (#​7837)
  • rt: add is_rt_shutdown_err (#​7771)
Changed
  • io: add optimizer hint that memchr returns in-bounds pointer (#​7792)
  • io: implement vectored writes for write_buf (#​7871)
  • runtime: panic when event_interval is set to 0 (#​7838)
  • runtime: shorten default thread name to fit in Linux limit (#​7880)
  • signal: remember the result of SetConsoleCtrlHandler (#​7833)
  • signal: specialize windows Registry (#​7885)
Fixed
  • io: always cleanup AsyncFd registration list on deregister (#​7773)
  • macros: remove (most) local use declarations in tokio::select! (#​7929)
  • net: fix GET_BUF_SIZE constant for target_os = "android" (#​7889)
  • runtime: avoid redundant unpark in current_thread scheduler (#​7834)
  • runtime: don't park in current_thread if before_park defers waker (#​7835)
  • io: fix write readiness on ESP32 on short writes (#​7872)
  • runtime: wake deferred tasks before entering block_in_place (#​7879)
  • sync: drop rx waker when oneshot receiver is dropped (#​7886)
  • runtime: fix double increment of num_idle_threads on shutdown (#​7910, #​7918, #​7922)
Unstable
  • fs: check for io-uring opcode support (#​7815)
  • runtime: avoid lock acquisition after uring init (#​7850)
Documented
  • docs: update outdated unstable features section (#​7839)
  • io: clarify the behavior of AsyncWriteExt::shutdown() (#​7908)
  • io: explain how to flush stdout/stderr (#​7904)
  • io: fix incorrect and confusing AsyncWrite documentation (#​7875)
  • rt: clarify the documentation of Runtime::spawn (#​7803)
  • rt: fix missing quotation in docs (#​7925)
  • runtime: correct the default thread name in docs (#​7896)
  • runtime: fix event_interval doc (#​7932)
  • sync: clarify RwLock fairness documentation (#​7919)
  • sync: clarify that recv returns None once closed and no more messages (#​7920)
  • task: clarify when to use spawn_blocking vs dedicated threads (#​7923)
  • task: doc that task drops before JoinHandle completion (#​7825)
  • signal: guarantee that listeners never return None (#​7869)
  • task: fix task module feature flags in docs (#​7891)
  • task: fix two typos (#​7913)
  • task: improve the docs of Builder::spawn_local (#​7828)
  • time: add docs about auto-advance and when to use sleep (#​7858)
  • util: fix typo in docs (#​7926)

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate CLI.

This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [tokio](https://tokio.rs) ([source](https://github.com/tokio-rs/tokio)) | dependencies | minor | `1.49.0` → `1.54.0` | --- ### Release Notes <details> <summary>tokio-rs/tokio (tokio)</summary> ### [`v1.54.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0): Tokio v1.54.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.53.3...tokio-1.54.0) ### 1.54.0 (October 19th, 2026) The 1.54.0 release includes all changes up to 1.53.3. The MSRV is increased to 1.85. ([#&#8203;8514]) ##### Added - fs: add `File::set_times`, `File::set_modified`, and `fs::FileTimes` ([#&#8203;8504]) - net: implement `Default` for `named_pipe::{ClientOptions, ServerOptions}` ([#&#8203;8378]) - runtime: add `Builder::max_io_events_per_busy_tick` ([#&#8203;8410]) - runtime: stabilize `tokio::runtime::worker_index()` ([#&#8203;8431]) - sync: add `SemaphorePermit::semaphore()` ([#&#8203;8482]) - sync: add `blocking_acquire` methods to `Semaphore` ([#&#8203;8269]) - sync: add `watch::Receiver::is_closed` ([#&#8203;8481]) - wasm: support JSPI for Emscripten target ([#&#8203;8285], [#&#8203;8627]) - wasm: support the `wasm32-unknown-emscripten` target ([#&#8203;8281], [#&#8203;8422], [#&#8203;8528], [#&#8203;8628]) ##### Changed - fs: reject zero in `File::set_max_buf_size` ([#&#8203;8449]) - io: make `copy_buf` cooperative ([#&#8203;8459]) - io: panic when `BufReader` or `BufStream` is created with zero capacity ([#&#8203;8494]) - io: panic when in-memory pipe is created with zero capacity ([#&#8203;8397]) - io: reject zero buffer size in `copy_bidirectional_with_sizes` ([#&#8203;8454]) - io: support vectored writes in `Sink` ([#&#8203;8663]) - net: start `UnixStream::pair` and `UnixDatagram::pair` sockets as writable ([#&#8203;8444]) - net: start accepted sockets as readable and writable ([#&#8203;8435]) - net: support `UCred` on Fuchsia ([#&#8203;8257]) - process: use `mio::unix::pipe` for Unix child stdio ([#&#8203;8603]) - runtime: cache-pad the shared injection queue and idle state ([#&#8203;8622]) - runtime: decide auto-boxing of spawned futures at monomorphization time ([#&#8203;8414]) - runtime: make `enable_io` available whenever `rt` is enabled ([#&#8203;8387]) - runtime: move `block_in_place` setup into a non-generic function ([#&#8203;8315]) - runtime: move the multi-thread inject queue to its own mutex ([#&#8203;8382]) - runtime: panic when `max_io_events_per_tick` is zero ([#&#8203;8476]) - runtime: suggest `.await` in nested `block_on` panic message ([#&#8203;8501]) - sync: avoid atomic reader count in broadcast slots ([#&#8203;8357]) - sync: use acquire/release orderings in `Notify` ([#&#8203;8325]) - time: remove the runtime handle from timers ([#&#8203;8458]) ##### Fixed - fs: restore `File` internal state when op fails ([#&#8203;8291]) - io: complete zero-length memory stream operations immediately ([#&#8203;8323]) - io: flush the writer when the reader stalls in `copy_buf` ([#&#8203;8424]) - io: keep the shutdown bit when clearing readiness ([#&#8203;8435]) - io: preserve the full `ScheduledIo` tick in readiness events ([#&#8203;8331]) - io: read lines as bytes so a partial line survives an I/O error ([#&#8203;8400]) - io: retry on `ErrorKind::Interrupted` in more I/O operations ([#&#8203;8417], [#&#8203;8432], [#&#8203;8448], [#&#8203;8453], [#&#8203;8455], [#&#8203;8460]) - io: use `spawn_mandatory_blocking` for stdout and stderr ([#&#8203;8506]) - io: wait for pending operations before `BufReader` seeks ([#&#8203;8599]) - net: close `CreateFileW` handle on `SetNamedPipeHandleState` failure ([#&#8203;8418]) - net: fix peer credentials on NetBSD ([#&#8203;8589]) - net: saturate `TcpSocket` and `UnixSocket` listen backlog ([#&#8203;8511]) - net: treat `ENOTCONN` as success in `UnixStream::shutdown` ([#&#8203;8526]) - runtime: allow building with `--all-features` without `tokio_unstable` ([#&#8203;8401]) - runtime: avoid overflow in `shutdown_timeout()` ([#&#8203;8497]) - runtime: fix `spawn_blocking` hang when only scheduler workers exist ([#&#8203;8408]) - runtime: fix misleading signal driver panic message ([#&#8203;8419]) - sync: preserve FIFO lock order when coop budget is exhausted ([#&#8203;8371]) - sync: use `usize` for permit count in `SemaphorePermit` ([#&#8203;8405]) - time: avoid interval deadline overflow ([#&#8203;8385]) - time: handle wrapped top-level timer-wheel slots ([#&#8203;8334]) ##### Unstable - fs: fall back when `io_uring` has no IO driver ([#&#8203;8165]) - metrics: cap log histogram precision ([#&#8203;8496]) - runtime: add an opt-in sharded `spawn_blocking` queue ([#&#8203;8337]) - runtime: expose schedule latency in task hooks ([#&#8203;8282]) - taskdump: fix idle bookkeeping when a task dump wakes parked workers ([#&#8203;8372]) - taskdump: skip non-idle tasks during taskdumps ([#&#8203;8568]) ##### Documented - docs: fix stray braces and broken links in rustdoc ([#&#8203;8605]) - fs: document cancellation behavior of `tokio::fs` ([#&#8203;8265]) - net: add Safety docs for named pipe `from_raw_handle` ([#&#8203;8378]) - net: document that `TcpStream::connect` returns only the last error ([#&#8203;8421]) - runtime: add error documentation for `runtime::Builder` ([#&#8203;8297]) - runtime: link `available_parallelism` in worker count docs ([#&#8203;8625]) - sync: clarify panic behavior of `broadcast::channel()` ([#&#8203;8420]) - sync: fix typo in `Semaphore` documentation ([#&#8203;8521]) [#&#8203;8165]: https://github.com/tokio-rs/tokio/pull/8165 [#&#8203;8257]: https://github.com/tokio-rs/tokio/pull/8257 [#&#8203;8265]: https://github.com/tokio-rs/tokio/pull/8265 [#&#8203;8269]: https://github.com/tokio-rs/tokio/pull/8269 [#&#8203;8281]: https://github.com/tokio-rs/tokio/pull/8281 [#&#8203;8282]: https://github.com/tokio-rs/tokio/pull/8282 [#&#8203;8285]: https://github.com/tokio-rs/tokio/pull/8285 [#&#8203;8291]: https://github.com/tokio-rs/tokio/pull/8291 [#&#8203;8297]: https://github.com/tokio-rs/tokio/pull/8297 [#&#8203;8315]: https://github.com/tokio-rs/tokio/pull/8315 [#&#8203;8323]: https://github.com/tokio-rs/tokio/pull/8323 [#&#8203;8325]: https://github.com/tokio-rs/tokio/pull/8325 [#&#8203;8331]: https://github.com/tokio-rs/tokio/pull/8331 [#&#8203;8334]: https://github.com/tokio-rs/tokio/pull/8334 [#&#8203;8337]: https://github.com/tokio-rs/tokio/pull/8337 [#&#8203;8357]: https://github.com/tokio-rs/tokio/pull/8357 [#&#8203;8371]: https://github.com/tokio-rs/tokio/pull/8371 [#&#8203;8372]: https://github.com/tokio-rs/tokio/pull/8372 [#&#8203;8378]: https://github.com/tokio-rs/tokio/pull/8378 [#&#8203;8382]: https://github.com/tokio-rs/tokio/pull/8382 [#&#8203;8385]: https://github.com/tokio-rs/tokio/pull/8385 [#&#8203;8387]: https://github.com/tokio-rs/tokio/pull/8387 [#&#8203;8397]: https://github.com/tokio-rs/tokio/pull/8397 [#&#8203;8400]: https://github.com/tokio-rs/tokio/pull/8400 [#&#8203;8401]: https://github.com/tokio-rs/tokio/pull/8401 [#&#8203;8405]: https://github.com/tokio-rs/tokio/pull/8405 [#&#8203;8408]: https://github.com/tokio-rs/tokio/pull/8408 [#&#8203;8410]: https://github.com/tokio-rs/tokio/pull/8410 [#&#8203;8414]: https://github.com/tokio-rs/tokio/pull/8414 [#&#8203;8417]: https://github.com/tokio-rs/tokio/pull/8417 [#&#8203;8418]: https://github.com/tokio-rs/tokio/pull/8418 [#&#8203;8419]: https://github.com/tokio-rs/tokio/pull/8419 [#&#8203;8420]: https://github.com/tokio-rs/tokio/pull/8420 [#&#8203;8421]: https://github.com/tokio-rs/tokio/pull/8421 [#&#8203;8422]: https://github.com/tokio-rs/tokio/pull/8422 [#&#8203;8424]: https://github.com/tokio-rs/tokio/pull/8424 [#&#8203;8431]: https://github.com/tokio-rs/tokio/pull/8431 [#&#8203;8432]: https://github.com/tokio-rs/tokio/pull/8432 [#&#8203;8435]: https://github.com/tokio-rs/tokio/pull/8435 [#&#8203;8444]: https://github.com/tokio-rs/tokio/pull/8444 [#&#8203;8448]: https://github.com/tokio-rs/tokio/pull/8448 [#&#8203;8449]: https://github.com/tokio-rs/tokio/pull/8449 [#&#8203;8453]: https://github.com/tokio-rs/tokio/pull/8453 [#&#8203;8454]: https://github.com/tokio-rs/tokio/pull/8454 [#&#8203;8455]: https://github.com/tokio-rs/tokio/pull/8455 [#&#8203;8458]: https://github.com/tokio-rs/tokio/pull/8458 [#&#8203;8459]: https://github.com/tokio-rs/tokio/pull/8459 [#&#8203;8460]: https://github.com/tokio-rs/tokio/pull/8460 [#&#8203;8476]: https://github.com/tokio-rs/tokio/pull/8476 [#&#8203;8481]: https://github.com/tokio-rs/tokio/pull/8481 [#&#8203;8482]: https://github.com/tokio-rs/tokio/pull/8482 [#&#8203;8494]: https://github.com/tokio-rs/tokio/pull/8494 [#&#8203;8496]: https://github.com/tokio-rs/tokio/pull/8496 [#&#8203;8497]: https://github.com/tokio-rs/tokio/pull/8497 [#&#8203;8501]: https://github.com/tokio-rs/tokio/pull/8501 [#&#8203;8504]: https://github.com/tokio-rs/tokio/pull/8504 [#&#8203;8506]: https://github.com/tokio-rs/tokio/pull/8506 [#&#8203;8511]: https://github.com/tokio-rs/tokio/pull/8511 [#&#8203;8514]: https://github.com/tokio-rs/tokio/pull/8514 [#&#8203;8521]: https://github.com/tokio-rs/tokio/pull/8521 [#&#8203;8526]: https://github.com/tokio-rs/tokio/pull/8526 [#&#8203;8528]: https://github.com/tokio-rs/tokio/pull/8528 [#&#8203;8568]: https://github.com/tokio-rs/tokio/pull/8568 [#&#8203;8589]: https://github.com/tokio-rs/tokio/pull/8589 [#&#8203;8599]: https://github.com/tokio-rs/tokio/pull/8599 [#&#8203;8603]: https://github.com/tokio-rs/tokio/pull/8603 [#&#8203;8605]: https://github.com/tokio-rs/tokio/pull/8605 [#&#8203;8622]: https://github.com/tokio-rs/tokio/pull/8622 [#&#8203;8625]: https://github.com/tokio-rs/tokio/pull/8625 [#&#8203;8627]: https://github.com/tokio-rs/tokio/pull/8627 [#&#8203;8628]: https://github.com/tokio-rs/tokio/pull/8628 [#&#8203;8663]: https://github.com/tokio-rs/tokio/pull/8663 ### [`v1.53.3`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.53.3): Tokio v1.53.3 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.53.2...tokio-1.53.3) ### 1.53.3 (October 13th, 2026) ##### Added - io: add `AsyncFd::register` and `AsyncFd::register_with_interest` ([#&#8203;8587]) ##### Changed - io: deprecate `AsyncFd::{new, with_interest, try_new, try_with_interest}` ([#&#8203;8587]) ##### Fixed - io: wake and drop `DuplexStream` wakers outside the lock ([#&#8203;8618]) - macros: avoid `unreachable_code` in `join!` and `try_join!` for `Infallible` ([#&#8203;8518]) - runtime: fix paused time auto-advancing when I/O wakes a task on `current_thread` ([#&#8203;8595]) - sync: wake waiters outside the lock when closing a semaphore ([#&#8203;8529]) - test: fix several flaky tests ([#&#8203;8196], [#&#8203;8427], [#&#8203;8609]) ##### Fixed (unstable) - rt: keep `io_uring` op alive when submission fails after push ([#&#8203;8185]) [#&#8203;8185]: https://github.com/tokio-rs/tokio/pull/8185 [#&#8203;8196]: https://github.com/tokio-rs/tokio/pull/8196 [#&#8203;8427]: https://github.com/tokio-rs/tokio/pull/8427 [#&#8203;8518]: https://github.com/tokio-rs/tokio/pull/8518 [#&#8203;8529]: https://github.com/tokio-rs/tokio/pull/8529 [#&#8203;8587]: https://github.com/tokio-rs/tokio/pull/8587 [#&#8203;8595]: https://github.com/tokio-rs/tokio/pull/8595 [#&#8203;8609]: https://github.com/tokio-rs/tokio/pull/8609 [#&#8203;8618]: https://github.com/tokio-rs/tokio/pull/8618 ### [`v1.53.2`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.53.2): Tokio v1.53.2 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.53.1...tokio-1.53.2) ### 1.53.2 (October 3rd, 2026) ##### Fixed - fs: handle integer overflow in buffered relative seek ([#&#8203;8574]) - io: revert "always cleanup `AsyncFd` registration list on deregister" ([#&#8203;8540]) - process: unregister Windows wait before closing child handle ([#&#8203;8564]) - rt: drop blocking pool mutex before shutting down rejected task ([#&#8203;8562]) - sync: fix mpsc index wraparound in block reclamation ([#&#8203;8546]) - sync: forget mpsc `Permit` before sending value ([#&#8203;8560]) - sync: validate `MAX_PERMITS` in `Semaphore::acquire` ([#&#8203;8548]) - sync: wake broadcast `Sender::closed` outside mutex ([#&#8203;8558]) - task: drop replaced waker outside lock in `JoinSet` ([#&#8203;8554]) - time: drop timer lock before dropping waker in `clear_entry` ([#&#8203;8552]) - time: expire timers directly on shutdown without rotating wheel ([#&#8203;8570]) ##### Fixed (unstable) - fs: clamp `io_uring` read length to `u32::MAX` ([#&#8203;8572]) - rt: ignore `current_thread` task dumps from other runtimes ([#&#8203;8544]) - rt: preserve `io_uring` context if a completion waker panics ([#&#8203;8566]) - sync: fix semaphore use-after-free and permit leak on tracing panic ([#&#8203;8542]) - taskdump: restore deferred leaf wakes during capture ([#&#8203;8445]) - time: drop stored waker when cancelling alt timer entry ([#&#8203;8550]) [#&#8203;8445]: https://github.com/tokio-rs/tokio/pull/8445 [#&#8203;8572]: https://github.com/tokio-rs/tokio/pull/8572 [#&#8203;8540]: https://github.com/tokio-rs/tokio/pull/8540 [#&#8203;8542]: https://github.com/tokio-rs/tokio/pull/8542 [#&#8203;8544]: https://github.com/tokio-rs/tokio/pull/8544 [#&#8203;8546]: https://github.com/tokio-rs/tokio/pull/8546 [#&#8203;8548]: https://github.com/tokio-rs/tokio/pull/8548 [#&#8203;8550]: https://github.com/tokio-rs/tokio/pull/8550 [#&#8203;8552]: https://github.com/tokio-rs/tokio/pull/8552 [#&#8203;8554]: https://github.com/tokio-rs/tokio/pull/8554 [#&#8203;8558]: https://github.com/tokio-rs/tokio/pull/8558 [#&#8203;8560]: https://github.com/tokio-rs/tokio/pull/8560 [#&#8203;8562]: https://github.com/tokio-rs/tokio/pull/8562 [#&#8203;8564]: https://github.com/tokio-rs/tokio/pull/8564 [#&#8203;8566]: https://github.com/tokio-rs/tokio/pull/8566 [#&#8203;8570]: https://github.com/tokio-rs/tokio/pull/8570 [#&#8203;8574]: https://github.com/tokio-rs/tokio/pull/8574 ### [`v1.53.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.53.1): Tokio v1.53.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.53.0...tokio-1.53.1) ### 1.53.1 (July 20th, 2026) ##### Fixed - signal: restore MSRV by removing `OnceLock::wait` from the Windows handler ([#&#8203;8300]) ##### Fixed (unstable) - time: fix alt timer cancellation and insertion race ([#&#8203;8252]) ##### Documented - runtime: remove dead link definition in Runtime::block\_on ([#&#8203;8301]) [#&#8203;8252]: https://github.com/tokio-rs/tokio/pull/8252 [#&#8203;8300]: https://github.com/tokio-rs/tokio/pull/8300 [#&#8203;8301]: https://github.com/tokio-rs/tokio/pull/8301 ### [`v1.53.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.53.0): Tokio v1.53.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.52.4...tokio-1.53.0) ### 1.53.0 (July 17th, 2026) ##### Added - fs: implement `From<OwnedFd>` and `From<OwnedHandle>` for `File` ([#&#8203;8266]) - metrics: add task schedule latency metric ([#&#8203;7986]) - net: add `SocketAddr` methods to Unix sockets ([#&#8203;8144]) ##### Changed - io: add `#[inline]` to IO trait impls for in-memory types ([#&#8203;8242]) - net: implement UCred::pid on FreeBSD ([#&#8203;8086]) - net: support Nuttx target os ([#&#8203;8259]) - signal: refactor global variables on Windows ([#&#8203;8231]) - sync: `mpsc::{Receiver,UnboundedReceiver}` now drops waker on drop, even if there are still senders ([#&#8203;8095]) - taskdump: support taskdumps on s390x ([#&#8203;8192]) - time: add `#[track_caller]` to `timeout_at()` ([#&#8203;8077]) - time: consolidate mutex locks on spurious poll ([#&#8203;8124]) - time: defer waker clone on spurious poll ([#&#8203;8107]) - time: move lazy-registration state into `Sleep` ([#&#8203;8132]) - tracing: remove unnecessary span clone ([#&#8203;8126]) ##### Fixed - io: do not treat zero-length reads as EOF in `Chain` ([#&#8203;8251]) - net: use getpeereid for QNX peer credentials ([#&#8203;8270]) - runtime: avoid illegal state in `FastRand` ([#&#8203;8078]) - sync: wake mpsc receiver when a queued `reserve[_many]` returns permits ([#&#8203;8260]) - taskdump: skip double wake on `Trace::capture`/`Trace::trace_with` ([#&#8203;8043]) - time: avoid stack overflow in runtime constructor ([#&#8203;8093]) - time (alt timer): ensure timers stay in the same runtime after `.reset()` ([#&#8203;8169]) ##### IO uring (unstable) - fs: use io-uring for `fs::try_exists` ([#&#8203;8080]) - fs: use io-uring for renaming files ([#&#8203;7800]) - rt: flush io-uring CQE in case of CQE overflow ([#&#8203;8277]) ##### Documented - docs: clarify cancel safety wording ([#&#8203;8181]) - fs: clarify `create_dir_all` succeeds if path exists ([#&#8203;8149]) - io: add warning about stdout reordering with multiple handles ([#&#8203;8276]) - net: document pipe `try_read*`/`try_write*` readiness behavior ([#&#8203;8032]) - runtime: document interaction with fork() ([#&#8203;8202]) - sync: clarify broadcast lagging semantics ([#&#8203;8239]) - sync: document memory ordering guarantees for Semaphore ([#&#8203;8119]) - task: explain why `yield_now` defers its waker ([#&#8203;8254]) - time: add panic docs to `timeout_at()` ([#&#8203;8077]) - time: fix reversed poll order in timeout doc ([#&#8203;8214]) [#&#8203;7800]: https://github.com/tokio-rs/tokio/pull/7800 [#&#8203;7986]: https://github.com/tokio-rs/tokio/pull/7986 [#&#8203;8032]: https://github.com/tokio-rs/tokio/pull/8032 [#&#8203;8043]: https://github.com/tokio-rs/tokio/pull/8043 [#&#8203;8077]: https://github.com/tokio-rs/tokio/pull/8077 [#&#8203;8078]: https://github.com/tokio-rs/tokio/pull/8078 [#&#8203;8080]: https://github.com/tokio-rs/tokio/pull/8080 [#&#8203;8086]: https://github.com/tokio-rs/tokio/pull/8086 [#&#8203;8093]: https://github.com/tokio-rs/tokio/pull/8093 [#&#8203;8095]: https://github.com/tokio-rs/tokio/pull/8095 [#&#8203;8107]: https://github.com/tokio-rs/tokio/pull/8107 [#&#8203;8119]: https://github.com/tokio-rs/tokio/pull/8119 [#&#8203;8124]: https://github.com/tokio-rs/tokio/pull/8124 [#&#8203;8126]: https://github.com/tokio-rs/tokio/pull/8126 [#&#8203;8132]: https://github.com/tokio-rs/tokio/pull/8132 [#&#8203;8144]: https://github.com/tokio-rs/tokio/pull/8144 [#&#8203;8149]: https://github.com/tokio-rs/tokio/pull/8149 [#&#8203;8169]: https://github.com/tokio-rs/tokio/pull/8169 [#&#8203;8181]: https://github.com/tokio-rs/tokio/pull/8181 [#&#8203;8192]: https://github.com/tokio-rs/tokio/pull/8192 [#&#8203;8193]: https://github.com/tokio-rs/tokio/pull/8193 [#&#8203;8202]: https://github.com/tokio-rs/tokio/pull/8202 [#&#8203;8214]: https://github.com/tokio-rs/tokio/pull/8214 [#&#8203;8231]: https://github.com/tokio-rs/tokio/pull/8231 [#&#8203;8239]: https://github.com/tokio-rs/tokio/pull/8239 [#&#8203;8242]: https://github.com/tokio-rs/tokio/pull/8242 [#&#8203;8251]: https://github.com/tokio-rs/tokio/pull/8251 [#&#8203;8254]: https://github.com/tokio-rs/tokio/pull/8254 [#&#8203;8259]: https://github.com/tokio-rs/tokio/pull/8259 [#&#8203;8260]: https://github.com/tokio-rs/tokio/pull/8260 [#&#8203;8266]: https://github.com/tokio-rs/tokio/pull/8266 [#&#8203;8270]: https://github.com/tokio-rs/tokio/pull/8270 [#&#8203;8276]: https://github.com/tokio-rs/tokio/pull/8276 [#&#8203;8277]: https://github.com/tokio-rs/tokio/pull/8277 ### [`v1.52.4`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.52.4): Tokio v1.52.4 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.52.3...tokio-1.52.4) ### 1.52.4 (July 16th, 2026) ##### Fixed - runtime: don't skip the driver when `before_park` schedules work ([#&#8203;8222]) ##### Fixed (unstable) - taskdump: remove crate disambiguators from output ([#&#8203;8264]) [#&#8203;8264]: https://github.com/tokio-rs/tokio/pull/8264 [#&#8203;8222]: https://github.com/tokio-rs/tokio/pull/8222 ### [`v1.52.3`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.52.3): Tokio v1.52.3 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.52.2...tokio-1.52.3) ### 1.52.3 (May 8th, 2026) ##### Fixed - sync: fix underflow in mpsc channel `len()` ([#&#8203;8062]) - sync: notify receivers in mpsc `OwnedPermit::release()` method ([#&#8203;8075]) - sync: require that an `RwLock` has `max_readers != 0` ([#&#8203;8076]) - sync: return `Empty` from `try_recv()` when mpsc is closed with outstanding permits ([#&#8203;8074]) [#&#8203;8062]: https://github.com/tokio-rs/tokio/pull/8062 [#&#8203;8074]: https://github.com/tokio-rs/tokio/pull/8074 [#&#8203;8075]: https://github.com/tokio-rs/tokio/pull/8075 [#&#8203;8076]: https://github.com/tokio-rs/tokio/pull/8076 ### [`v1.52.2`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.52.2): Tokio v1.52.2 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.52.1...tokio-1.52.2) ### 1.52.2 (May 4th, 2026) This release reverts the LIFO slot stealing change introduced in 1.51.0 ([#&#8203;7431]), due to [its performance impact][#&#8203;8065]. ([#&#8203;8100]) [#&#8203;7431]: https://github.com/tokio-rs/tokio/pull/7431 [#&#8203;8065]: https://github.com/tokio-rs/tokio/pull/8065 [#&#8203;8100]: https://github.com/tokio-rs/tokio/pull/8100 ### [`v1.52.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.52.1): Tokio v1.52.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.52.0...tokio-1.52.1) ### 1.52.1 (April 16th, 2026) #### Fixed - runtime: revert [#&#8203;7757] to fix [a regression][#&#8203;8056] that causes `spawn_blocking` to hang ([#&#8203;8057]) [#&#8203;7757]: https://github.com/tokio-rs/tokio/pull/7757 [#&#8203;8056]: https://github.com/tokio-rs/tokio/pull/8056 [#&#8203;8057]: https://github.com/tokio-rs/tokio/pull/8057 ### [`v1.52.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.52.0): Tokio v1.52.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.51.6...tokio-1.52.0) ### 1.52.0 (April 14th, 2026) #### Added - io: `AioSource::register_borrowed` for I/O safety support ([#&#8203;7992]) - net: add `try_io` function to `unix::pipe` sender and receiver types ([#&#8203;8030]) #### Added (unstable) - runtime: `Builder::enable_eager_driver_handoff` setting enable eager hand off of the I/O and time drivers before polling tasks ([#&#8203;8010]) - taskdump: add `trace_with()` for customized task dumps ([#&#8203;8025]) - taskdump: allow `impl FnMut()` in `trace_with` instead of just `fn()` ([#&#8203;8040]) - fs: support `io_uring` in `AsyncRead` for `File` ([#&#8203;7907]) #### Changed - runtime: improve `spawn_blocking` scalability with sharded queue ([#&#8203;7757]) - runtime: use `compare_exchange_weak()` in worker queue ([#&#8203;8028]) #### Fixed - runtime: overflow second half of tasks when local queue is filled instead of first half ([#&#8203;8029]) #### Documented - docs: fix typo in `oneshot::Sender::send` docs ([#&#8203;8026]) - docs: hide #\[tokio::main] attribute in the docs of `sync::watch` ([#&#8203;8035]) - net: add docs on `ConnectionRefused` errors with UDP sockets ([#&#8203;7870]) [#&#8203;7757]: https://github.com/tokio-rs/tokio/pull/7757 [#&#8203;7870]: https://github.com/tokio-rs/tokio/pull/7870 [#&#8203;7907]: https://github.com/tokio-rs/tokio/pull/7907 [#&#8203;7992]: https://github.com/tokio-rs/tokio/pull/7992 [#&#8203;8010]: https://github.com/tokio-rs/tokio/pull/8010 [#&#8203;8025]: https://github.com/tokio-rs/tokio/pull/8025 [#&#8203;8026]: https://github.com/tokio-rs/tokio/pull/8026 [#&#8203;8028]: https://github.com/tokio-rs/tokio/pull/8028 [#&#8203;8029]: https://github.com/tokio-rs/tokio/pull/8029 [#&#8203;8030]: https://github.com/tokio-rs/tokio/pull/8030 [#&#8203;8035]: https://github.com/tokio-rs/tokio/pull/8035 [#&#8203;8040]: https://github.com/tokio-rs/tokio/pull/8040 ### [`v1.51.6`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.51.6): Tokio v1.51.6 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.51.5...tokio-1.51.6) ### 1.51.6 (October 13th, 2026) ##### Added - io: add `AsyncFd::register` and `AsyncFd::register_with_interest` ([#&#8203;8587]) ##### Changed - io: deprecate `AsyncFd::{new, with_interest, try_new, try_with_interest}` ([#&#8203;8587]) ##### Fixed - io: wake and drop `DuplexStream` wakers outside the lock ([#&#8203;8618]) - macros: avoid `unreachable_code` in `join!` and `try_join!` for `Infallible` ([#&#8203;8518]) - runtime: fix paused time auto-advancing when I/O wakes a task on `current_thread` ([#&#8203;8595]) - sync: wake waiters outside the lock when closing a semaphore ([#&#8203;8529]) - test: fix several flaky tests ([#&#8203;8196], [#&#8203;8427], [#&#8203;8609]) [#&#8203;8196]: https://github.com/tokio-rs/tokio/pull/8196 [#&#8203;8427]: https://github.com/tokio-rs/tokio/pull/8427 [#&#8203;8518]: https://github.com/tokio-rs/tokio/pull/8518 [#&#8203;8529]: https://github.com/tokio-rs/tokio/pull/8529 [#&#8203;8587]: https://github.com/tokio-rs/tokio/pull/8587 [#&#8203;8595]: https://github.com/tokio-rs/tokio/pull/8595 [#&#8203;8609]: https://github.com/tokio-rs/tokio/pull/8609 [#&#8203;8618]: https://github.com/tokio-rs/tokio/pull/8618 ### [`v1.51.5`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.51.5): Tokio v1.51.5 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.51.4...tokio-1.51.5) ### 1.51.5 (October 3rd, 2026) ##### Fixed - fs: handle integer overflow in buffered relative seek ([#&#8203;8574]) - io: revert "always cleanup `AsyncFd` registration list on deregister" ([#&#8203;8540]) - process: unregister Windows wait before closing child handle ([#&#8203;8564]) - rt: drop blocking pool mutex before shutting down rejected task ([#&#8203;8562]) - sync: fix mpsc index wraparound in block reclamation ([#&#8203;8546]) - sync: forget mpsc `Permit` before sending value ([#&#8203;8560]) - sync: validate `MAX_PERMITS` in `Semaphore::acquire` ([#&#8203;8548]) - sync: wake broadcast `Sender::closed` outside mutex ([#&#8203;8558]) - task: drop replaced waker outside lock in `JoinSet` ([#&#8203;8554]) - time: drop timer lock before dropping waker in `clear_entry` ([#&#8203;8552]) - time: expire timers directly on shutdown without rotating wheel ([#&#8203;8570]) ##### Fixed (unstable) - rt: ignore `current_thread` task dumps from other runtimes ([#&#8203;8544]) - rt: preserve `io_uring` context if a completion waker panics ([#&#8203;8566]) - sync: fix semaphore use-after-free and permit leak on tracing panic ([#&#8203;8542]) - time: drop stored waker when cancelling alt timer entry ([#&#8203;8550]) [#&#8203;8540]: https://github.com/tokio-rs/tokio/pull/8540 [#&#8203;8542]: https://github.com/tokio-rs/tokio/pull/8542 [#&#8203;8544]: https://github.com/tokio-rs/tokio/pull/8544 [#&#8203;8546]: https://github.com/tokio-rs/tokio/pull/8546 [#&#8203;8548]: https://github.com/tokio-rs/tokio/pull/8548 [#&#8203;8550]: https://github.com/tokio-rs/tokio/pull/8550 [#&#8203;8552]: https://github.com/tokio-rs/tokio/pull/8552 [#&#8203;8554]: https://github.com/tokio-rs/tokio/pull/8554 [#&#8203;8558]: https://github.com/tokio-rs/tokio/pull/8558 [#&#8203;8560]: https://github.com/tokio-rs/tokio/pull/8560 [#&#8203;8562]: https://github.com/tokio-rs/tokio/pull/8562 [#&#8203;8564]: https://github.com/tokio-rs/tokio/pull/8564 [#&#8203;8566]: https://github.com/tokio-rs/tokio/pull/8566 [#&#8203;8570]: https://github.com/tokio-rs/tokio/pull/8570 [#&#8203;8574]: https://github.com/tokio-rs/tokio/pull/8574 ### [`v1.51.4`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.51.4): Tokio v1.51.4 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.51.3...tokio-1.51.4) ### 1.51.4 (July 16th, 2026) ##### Fixed - runtime: don't skip the driver when `before_park` schedules work ([#&#8203;8222]) [#&#8203;8222]: https://github.com/tokio-rs/tokio/pull/8222 ### [`v1.51.3`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.51.3): Tokio v1.51.3 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.51.2...tokio-1.51.3) ### 1.51.3 (May 8th, 2026) ##### Fixed - sync: fix underflow in mpsc channel `len()` ([#&#8203;8062]) - sync: notify receivers in mpsc `OwnedPermit::release()` method ([#&#8203;8075]) - sync: require that an `RwLock` has `max_readers != 0` ([#&#8203;8076]) - sync: return `Empty` from `try_recv()` when mpsc is closed with outstanding permits ([#&#8203;8074]) [#&#8203;8062]: https://github.com/tokio-rs/tokio/pull/8062 [#&#8203;8074]: https://github.com/tokio-rs/tokio/pull/8074 [#&#8203;8075]: https://github.com/tokio-rs/tokio/pull/8075 [#&#8203;8076]: https://github.com/tokio-rs/tokio/pull/8076 ### [`v1.51.2`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.51.2): Tokio v1.51.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.51.1...tokio-1.51.2) ### 1.51.2 (May 4th, 2026) This release reverts the LIFO slot stealing change introduced in 1.51.0 ([#&#8203;7431]), due to [its performance impact][#&#8203;8065]. ([#&#8203;8100]) [#&#8203;7431]: https://github.com/tokio-rs/tokio/pull/7431 [#&#8203;8065]: https://github.com/tokio-rs/tokio/pull/8065 [#&#8203;8100]: https://github.com/tokio-rs/tokio/pull/8100 ### [`v1.51.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.51.1): Tokio v1.51.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.51.0...tokio-1.51.1) ### 1.51.1 (April 8th, 2026) ##### Fixed - sync: fix semaphore reopens after forget ([#&#8203;8021]) - net: surface errors from `SO_ERROR` on `recv` for UDP sockets on Linux ([#&#8203;8001]) ##### Fixed (unstable) - metrics: fix `worker_local_schedule_count` test ([#&#8203;8008]) - rt: do not leak fd when cancelling io\_uring open operation ([#&#8203;7983]) [#&#8203;7983]: https://github.com/tokio-rs/tokio/pull/7983 [#&#8203;8001]: https://github.com/tokio-rs/tokio/pull/8001 [#&#8203;8008]: https://github.com/tokio-rs/tokio/pull/8008 [#&#8203;8021]: https://github.com/tokio-rs/tokio/pull/8021 ### [`v1.51.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.51.0): Tokio v1.51.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.50.0...tokio-1.51.0) ### 1.51.0 (April 3rd, 2026) ##### Added - net: implement `get_peer_cred` on Hurd ([#&#8203;7989]) - runtime: add `tokio::runtime::worker_index()` ([#&#8203;7921]) - runtime: add runtime name ([#&#8203;7924]) - runtime: stabilize `LocalRuntime` ([#&#8203;7557]) - wasm: add wasm32-wasip2 networking support ([#&#8203;7933]) ##### Changed - runtime: steal tasks from the LIFO slot ([#&#8203;7431]) ##### Fixed - docs: do not show "Available on non-loom only." doc label ([#&#8203;7977]) - macros: improve overall macro hygiene ([#&#8203;7997]) - sync: fix `notify_waiters` priority in `Notify` ([#&#8203;7996]) - sync: fix panic in `Chan::recv_many` when called with non-empty vector on closed channel ([#&#8203;7991]) [#&#8203;7431]: https://github.com/tokio-rs/tokio/pull/7431 [#&#8203;7557]: https://github.com/tokio-rs/tokio/pull/7557 [#&#8203;7921]: https://github.com/tokio-rs/tokio/pull/7921 [#&#8203;7924]: https://github.com/tokio-rs/tokio/pull/7924 [#&#8203;7933]: https://github.com/tokio-rs/tokio/pull/7933 [#&#8203;7977]: https://github.com/tokio-rs/tokio/pull/7977 [#&#8203;7989]: https://github.com/tokio-rs/tokio/pull/7989 [#&#8203;7991]: https://github.com/tokio-rs/tokio/pull/7991 [#&#8203;7996]: https://github.com/tokio-rs/tokio/pull/7996 [#&#8203;7997]: https://github.com/tokio-rs/tokio/pull/7997 ### [`v1.50.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.50.0): Tokio v1.50.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.49.0...tokio-1.50.0) ### 1.50.0 (Mar 3rd, 2026) ##### Added - net: add `TcpStream::set_zero_linger` ([#&#8203;7837]) - rt: add `is_rt_shutdown_err` ([#&#8203;7771]) ##### Changed - io: add optimizer hint that `memchr` returns in-bounds pointer ([#&#8203;7792]) - io: implement vectored writes for `write_buf` ([#&#8203;7871]) - runtime: panic when `event_interval` is set to 0 ([#&#8203;7838]) - runtime: shorten default thread name to fit in Linux limit ([#&#8203;7880]) - signal: remember the result of `SetConsoleCtrlHandler` ([#&#8203;7833]) - signal: specialize windows `Registry` ([#&#8203;7885]) ##### Fixed - io: always cleanup `AsyncFd` registration list on deregister ([#&#8203;7773]) - macros: remove (most) local `use` declarations in `tokio::select!` ([#&#8203;7929]) - net: fix `GET_BUF_SIZE` constant for `target_os = "android"` ([#&#8203;7889]) - runtime: avoid redundant unpark in current\_thread scheduler ([#&#8203;7834]) - runtime: don't park in `current_thread` if `before_park` defers waker ([#&#8203;7835]) - io: fix write readiness on ESP32 on short writes ([#&#8203;7872]) - runtime: wake deferred tasks before entering `block_in_place` ([#&#8203;7879]) - sync: drop rx waker when oneshot receiver is dropped ([#&#8203;7886]) - runtime: fix double increment of `num_idle_threads` on shutdown ([#&#8203;7910], [#&#8203;7918], [#&#8203;7922]) ##### Unstable - fs: check for io-uring opcode support ([#&#8203;7815]) - runtime: avoid lock acquisition after uring init ([#&#8203;7850]) ##### Documented - docs: update outdated unstable features section ([#&#8203;7839]) - io: clarify the behavior of `AsyncWriteExt::shutdown()` ([#&#8203;7908]) - io: explain how to flush stdout/stderr ([#&#8203;7904]) - io: fix incorrect and confusing `AsyncWrite` documentation ([#&#8203;7875]) - rt: clarify the documentation of `Runtime::spawn` ([#&#8203;7803]) - rt: fix missing quotation in docs ([#&#8203;7925]) - runtime: correct the default thread name in docs ([#&#8203;7896]) - runtime: fix `event_interval` doc ([#&#8203;7932]) - sync: clarify RwLock fairness documentation ([#&#8203;7919]) - sync: clarify that `recv` returns `None` once closed and no more messages ([#&#8203;7920]) - task: clarify when to use `spawn_blocking` vs dedicated threads ([#&#8203;7923]) - task: doc that task drops before `JoinHandle` completion ([#&#8203;7825]) - signal: guarantee that listeners never return `None` ([#&#8203;7869]) - task: fix task module feature flags in docs ([#&#8203;7891]) - task: fix two typos ([#&#8203;7913]) - task: improve the docs of `Builder::spawn_local` ([#&#8203;7828]) - time: add docs about auto-advance and when to use sleep ([#&#8203;7858]) - util: fix typo in docs ([#&#8203;7926]) [#&#8203;7771]: https://github.com/tokio-rs/tokio/pull/7771 [#&#8203;7773]: https://github.com/tokio-rs/tokio/pull/7773 [#&#8203;7792]: https://github.com/tokio-rs/tokio/pull/7792 [#&#8203;7803]: https://github.com/tokio-rs/tokio/pull/7803 [#&#8203;7815]: https://github.com/tokio-rs/tokio/pull/7815 [#&#8203;7825]: https://github.com/tokio-rs/tokio/pull/7825 [#&#8203;7828]: https://github.com/tokio-rs/tokio/pull/7828 [#&#8203;7833]: https://github.com/tokio-rs/tokio/pull/7833 [#&#8203;7834]: https://github.com/tokio-rs/tokio/pull/7834 [#&#8203;7835]: https://github.com/tokio-rs/tokio/pull/7835 [#&#8203;7837]: https://github.com/tokio-rs/tokio/pull/7837 [#&#8203;7838]: https://github.com/tokio-rs/tokio/pull/7838 [#&#8203;7839]: https://github.com/tokio-rs/tokio/pull/7839 [#&#8203;7850]: https://github.com/tokio-rs/tokio/pull/7850 [#&#8203;7858]: https://github.com/tokio-rs/tokio/pull/7858 [#&#8203;7869]: https://github.com/tokio-rs/tokio/pull/7869 [#&#8203;7871]: https://github.com/tokio-rs/tokio/pull/7871 [#&#8203;7872]: https://github.com/tokio-rs/tokio/pull/7872 [#&#8203;7875]: https://github.com/tokio-rs/tokio/pull/7875 [#&#8203;7879]: https://github.com/tokio-rs/tokio/pull/7879 [#&#8203;7880]: https://github.com/tokio-rs/tokio/pull/7880 [#&#8203;7885]: https://github.com/tokio-rs/tokio/pull/7885 [#&#8203;7886]: https://github.com/tokio-rs/tokio/pull/7886 [#&#8203;7889]: https://github.com/tokio-rs/tokio/pull/7889 [#&#8203;7891]: https://github.com/tokio-rs/tokio/pull/7891 [#&#8203;7896]: https://github.com/tokio-rs/tokio/pull/7896 [#&#8203;7904]: https://github.com/tokio-rs/tokio/pull/7904 [#&#8203;7908]: https://github.com/tokio-rs/tokio/pull/7908 [#&#8203;7910]: https://github.com/tokio-rs/tokio/pull/7910 [#&#8203;7913]: https://github.com/tokio-rs/tokio/pull/7913 [#&#8203;7918]: https://github.com/tokio-rs/tokio/pull/7918 [#&#8203;7919]: https://github.com/tokio-rs/tokio/pull/7919 [#&#8203;7920]: https://github.com/tokio-rs/tokio/pull/7920 [#&#8203;7922]: https://github.com/tokio-rs/tokio/pull/7922 [#&#8203;7923]: https://github.com/tokio-rs/tokio/pull/7923 [#&#8203;7925]: https://github.com/tokio-rs/tokio/pull/7925 [#&#8203;7926]: https://github.com/tokio-rs/tokio/pull/7926 [#&#8203;7929]: https://github.com/tokio-rs/tokio/pull/7929 [#&#8203;7932]: https://github.com/tokio-rs/tokio/pull/7932 </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4wLjkiLCJ1cGRhdGVkSW5WZXIiOiI0NC4zMC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
renovate changed title from Update Rust crate tokio to v1.50.0 to Update Rust crate tokio to v1.51.0 2026-04-04 00:29:31 +00:00
renovate force-pushed renovate/tokio-1.x-lockfile from 187b62e38e to ebfbf73345 2026-04-04 00:29:33 +00:00 Compare
renovate changed title from Update Rust crate tokio to v1.51.0 to Update Rust crate tokio to v1.51.1 2026-04-08 11:07:07 +00:00
renovate force-pushed renovate/tokio-1.x-lockfile from ebfbf73345 to b0ebc8de84 2026-04-08 11:07:10 +00:00 Compare
renovate changed title from Update Rust crate tokio to v1.51.1 to Update Rust crate tokio to v1.52.0 2026-04-14 19:36:28 +00:00
renovate force-pushed renovate/tokio-1.x-lockfile from b0ebc8de84 to d96073ddbf 2026-04-14 19:36:29 +00:00 Compare
renovate changed title from Update Rust crate tokio to v1.52.0 to Update Rust crate tokio to v1.52.1 2026-04-16 21:36:49 +00:00
renovate force-pushed renovate/tokio-1.x-lockfile from d96073ddbf to 3e7423bf1f 2026-04-16 21:36:51 +00:00 Compare
renovate changed title from Update Rust crate tokio to v1.52.1 to Update Rust crate tokio to v1.52.2 2026-05-04 13:08:07 +00:00
renovate force-pushed renovate/tokio-1.x-lockfile from 3e7423bf1f to b2d8ce665a 2026-05-04 13:08:09 +00:00 Compare
renovate changed title from Update Rust crate tokio to v1.52.2 to Update Rust crate tokio to v1.52.3 2026-05-08 13:04:01 +00:00
renovate force-pushed renovate/tokio-1.x-lockfile from b2d8ce665a to d1345acbad 2026-05-08 13:04:03 +00:00 Compare
renovate changed title from Update Rust crate tokio to v1.52.3 to Update Rust crate tokio to v1.52.4 2026-07-16 14:01:24 +00:00
renovate force-pushed renovate/tokio-1.x-lockfile from d1345acbad to bd9333165e 2026-07-16 14:01:25 +00:00 Compare
renovate changed title from Update Rust crate tokio to v1.52.4 to Update Rust crate tokio to v1.53.0 2026-07-17 09:01:27 +00:00
renovate force-pushed renovate/tokio-1.x-lockfile from bd9333165e to 2eb07dc7e1 2026-07-17 09:01:28 +00:00 Compare
renovate changed title from Update Rust crate tokio to v1.53.0 to Update Rust crate tokio to v1.53.1 2026-07-20 18:01:24 +00:00
renovate force-pushed renovate/tokio-1.x-lockfile from 2eb07dc7e1 to fd137ee1f7 2026-07-20 18:01:26 +00:00 Compare
renovate changed title from Update Rust crate tokio to v1.53.1 to Update Rust crate tokio to v1.53.2 2026-10-03 12:04:01 +00:00
renovate force-pushed renovate/tokio-1.x-lockfile from fd137ee1f7 to 0b96a90395 2026-10-03 12:04:03 +00:00 Compare
renovate force-pushed renovate/tokio-1.x-lockfile from 0b96a90395 to 7b1e3dd201 2026-10-13 21:06:39 +00:00 Compare
renovate changed title from Update Rust crate tokio to v1.53.2 to Update Rust crate tokio to v1.53.3 2026-10-13 21:06:40 +00:00
renovate changed title from Update Rust crate tokio to v1.53.3 to Update Rust crate tokio to v1.54.0 2026-10-19 17:03:47 +00:00
renovate force-pushed renovate/tokio-1.x-lockfile from 7b1e3dd201 to 3e85fda139 2026-10-19 17:03:47 +00:00 Compare
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/tokio-1.x-lockfile:renovate/tokio-1.x-lockfile
git switch renovate/tokio-1.x-lockfile

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff renovate/tokio-1.x-lockfile
git switch renovate/tokio-1.x-lockfile
git rebase main
git switch main
git merge --ff-only renovate/tokio-1.x-lockfile
git switch renovate/tokio-1.x-lockfile
git rebase main
git switch main
git merge --no-ff renovate/tokio-1.x-lockfile
git switch main
git merge --squash renovate/tokio-1.x-lockfile
git switch main
git merge --ff-only renovate/tokio-1.x-lockfile
git switch main
git merge renovate/tokio-1.x-lockfile
git push origin main
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jmarya/htmsix!20
No description provided.