unstale

cargo / tokio

tokio

What changed in tokio 1, from its official release notes, upgrade guides and advisories. Sources checked 2026-11-12.

9 breaking2 security4 deprecations15 new APIs and options1 performance4 behavior and defaults27 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.3.0 on npm

tokio 162 changes

Breaking changes 9

Security 2

Deprecations 4

New APIs and options 15

  • Adds a runtime builder method for configuring the maximum I/O events per busy tick.

    1.54.0release notes

  • Adds a method to set a file's modified time.

    1.54.0release notes

  • Adds a method to set file timestamps.

    1.54.0release notes

  • Adds the FileTimes type for working with file timestamps.

    1.54.0release notes

  • Adds JSPI support for the Emscripten target.

    1.54.0release notes

  • Implements Default for named-pipe client options.

    1.54.0release notes

  • Implements Default for named-pipe server options.

    1.54.0release notes

  • Exposes schedule latency in task hooks as an unstable feature.

    1.54.0release notes

  • Adds blocking_acquire methods to Semaphore.

    1.54.0release notes

  • Adds a method to retrieve the semaphore associated with a permit.

    1.54.0release notes

  • Adds an opt-in sharded spawn_blocking queue as an unstable feature.

    1.54.0release notes

  • Supports vectored writes.

    1.54.0release notes

  • Adds UCred support on Fuchsia.

    1.54.0release notes

  • Adds support for the wasm32-unknown-emscripten target.

    1.54.0release notes

  • Adds a method to check whether a watch receiver is closed.

    1.54.0release notes

Performance 1

  • Avoids the atomic reader count in broadcast slots.

    1.54.0release notes

Behavior and default changes 4

Fixes and other changes 27

  • Reverts the removal of the runtime handle from timers.

    1.54.1release notes

  • Accepted sockets start as readable and writable.

    1.54.0release notes

  • Clarifies the channel's panic behavior.

    1.54.0release notes

  • Waits for pending operations before seeking.

    1.54.0release notes

  • Flushes the writer when the reader stalls.

    1.54.0release notes

  • More I/O operations now retry on ErrorKind::Interrupted.

    1.54.0release notes

  • Restores File internal state when an operation fails.

    1.54.0release notes

  • Falls back when io_uring has no I/O driver.

    1.54.0release notes

  • Reads lines as bytes so a partial line survives an I/O error.

    1.54.0release notes

  • The panic message for nested block_on now suggests using .await.

    1.54.0release notes

  • Uses acquire/release orderings.

    1.54.0release notes

  • Keeps the shutdown bit when clearing readiness.

    1.54.0release notes

  • Preserves the full ScheduledIo tick in readiness events.

    1.54.0release notes

  • Avoids overflow in shutdown_timeout.

    1.54.0release notes

  • Fixes a hang when only scheduler workers exist.

    1.54.0release notes

  • Saturates the listen backlog value.

    1.54.0release notes

  • Sockets returned by pair start as writable.

    1.54.0release notes

  • Saturates the listen backlog value.

    1.54.0release notes

  • Sockets returned by pair start as writable.

    1.54.0release notes

  • Treats ENOTCONN as success.

    1.54.0release notes

  • Completes zero-length memory stream operations immediately.

    1.54.0release notes

  • Wakes and drops DuplexStream wakers outside the lock.

    1.53.3release notes

  • Keeps the io_uring operation alive when submission fails after push.

    1.53.3release notes

  • Avoids unreachable_code for Infallible in join!.

    1.53.3release notes

  • Fixes paused time auto-advancing when I/O wakes a task on current_thread.

    1.53.3release notes

  • Wakes waiters outside the lock when closing a semaphore.

    1.53.3release notes

  • Avoids unreachable_code for Infallible in try_join!.

    1.53.3release notes