# What changed in tokio

> 62 changes in tokio 1 from its official release notes, upgrade guides and advisories: 9 breaking, 4 deprecations, 2 security, 15 new APIs and options. Each one cited. Sources checked 2026-11-12. HTML: https://unstale.sh/cargo/tokio/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## tokio 1

### Breaking changes

- Panics when created with zero capacity. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Panics when created with zero capacity. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Rejects a zero buffer size. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Rejects zero as a maximum buffer size. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Panics when created with zero capacity. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Panics when set to zero. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- The minimum supported Rust version is increased to 1.85. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Adds AsyncFd::register. (1.53.3) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.53.3)
- Adds AsyncFd::register_with_interest. (1.53.3) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.53.3)

### Security

- Tokio: Race condition in `tokio::time::Interval` (1.54.1) — [security advisory](https://github.com/advisories/GHSA-5WJR-9356-4WC8)
- `AsyncFd::new` and related constructors violate I/O safety (1.51.6, 1.53.3) — [security advisory](https://osv.dev/vulnerability/RUSTSEC-2026-0386)

### Deprecations

- Deprecates AsyncFd::new. (1.53.3) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.53.3)
- Deprecates AsyncFd::try_new. (1.53.3) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.53.3)
- Deprecates AsyncFd::try_with_interest. (1.53.3) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.53.3)
- Deprecates AsyncFd::with_interest. (1.53.3) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.53.3)

### New APIs and options

- Adds a runtime builder method for configuring the maximum I/O events per busy tick. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Adds a method to set a file's modified time. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Adds a method to set file timestamps. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Adds the FileTimes type for working with file timestamps. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Adds JSPI support for the Emscripten target. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Implements Default for named-pipe client options. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Implements Default for named-pipe server options. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Exposes schedule latency in task hooks as an unstable feature. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Adds blocking_acquire methods to Semaphore. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Adds a method to retrieve the semaphore associated with a permit. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Adds an opt-in sharded spawn_blocking queue as an unstable feature. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Supports vectored writes. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Adds UCred support on Fuchsia. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Adds support for the wasm32-unknown-emscripten target. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Adds a method to check whether a watch receiver is closed. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)

### Performance

- Avoids the atomic reader count in broadcast slots. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)

### Behavior and default changes

- Makes copy_buf cooperative. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Makes enable_io available whenever the rt feature is enabled. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Uses usize for the permit count. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Stabilizes the runtime worker_index function. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)

### Fixes and other changes

- Reverts the removal of the runtime handle from timers. (1.54.1) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.1)
- Accepted sockets start as readable and writable. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Clarifies the channel's panic behavior. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Waits for pending operations before seeking. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Flushes the writer when the reader stalls. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- More I/O operations now retry on ErrorKind::Interrupted. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Restores File internal state when an operation fails. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Falls back when io_uring has no I/O driver. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Reads lines as bytes so a partial line survives an I/O error. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- The panic message for nested block_on now suggests using .await. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Uses acquire/release orderings. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Keeps the shutdown bit when clearing readiness. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Preserves the full ScheduledIo tick in readiness events. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Avoids overflow in shutdown_timeout. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Fixes a hang when only scheduler workers exist. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Saturates the listen backlog value. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Sockets returned by pair start as writable. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Saturates the listen backlog value. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Sockets returned by pair start as writable. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Treats ENOTCONN as success. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Completes zero-length memory stream operations immediately. (1.54.0) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.54.0)
- Wakes and drops DuplexStream wakers outside the lock. (1.53.3) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.53.3)
- Keeps the io_uring operation alive when submission fails after push. (1.53.3) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.53.3)
- Avoids unreachable_code for Infallible in join!. (1.53.3) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.53.3)
- Fixes paused time auto-advancing when I/O wakes a task on current_thread. (1.53.3) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.53.3)
- Wakes waiters outside the lock when closing a semaphore. (1.53.3) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.53.3)
- Avoids unreachable_code for Infallible in try_join!. (1.53.3) — [release notes](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.53.3)
