tokio-1.48.0
tokio-rs/tokiotokio-1.48.0Oct 14, 2025by Darksonn
AI Summary
This release increases MSRV to 1.71 and adds various networking features including SocketAddr::as_abstract_name and TcpStream::quickack. It continues io-uring support improvements for filesystem operations.
Key Highlights
- MSRV increased to 1.71
- Added SocketAddr::as_abstract_name for abstract sockets
- Added TcpStream::quickack and set_quickack methods
- Added LocalKey::try_get method
- io-uring support for fs::write and File::open
New Features
- fs: add File::max_buf_size
- io: export Chain of AsyncReadExt::chain
- net: add SocketAddr::as_abstract_name
- net: add TcpStream::quickack and TcpStream::set_quickack
- net: implement AsRef<Self> for TcpStream and UnixStream
- task: add LocalKey::try_get
- task: implement Ord for task::Id
Full Release Notes
# 1.48.0 (October 14th, 2025) The MSRV is increased to 1.71. ### Added - fs: add `File::max_buf_size` ([#7594]) - io: export `Chain` of `AsyncReadExt::chain` ([#7599]) - net: add `SocketAddr::as_abstract_name` ([#7491]) - net: add `TcpStream::quickack` and `TcpStream::set_quickack` ([#7490]) - net: implement `AsRef<Self>` for `TcpStream` and `UnixStream` ([#7573]) - task: add `LocalKey::try_get` ([#7666]) - task: implement `Ord` for `task::Id` ([#7530]) ### Changed - deps: bump windows-sys to version 0.61 ([#7645]) - fs: preserve `max_buf_size` when cloning a `File` ([#7593]) - macros: suppress `clippy::unwrap_in_result` in `#[tokio::main]` ([#7651]) - net: remove `PollEvented` noise from Debug formats ([#7675]) - process: upgrade `Command::spawn_with` to use `FnOnce` ([#7511]) - sync: remove inner mutex in `SetOnce` ([#7554]) - sync: use `UnsafeCell::get_mut` in `Mutex::get_mut` and `RwLock::get_mut` ([#7569]) - time: reduce the generated code size of `Timeout<T>::poll` ([#7535]) ### Fixed - macros: fix hygiene issue in `join!` and `try_join!` ([#7638]) - net: fix copy/paste errors in udp peek methods ([#7604]) - process: fix error when runtime is shut down on nightly-2025-10-12 ([#7672]) - runtime: use release ordering in `wake_by_ref()` even if already woken ([#7622]) - sync: close the `broadcast::Sender` in `broadcast::Sender::new()` ([#7629]) - sync: fix implementation of unused `RwLock::try_*` methods ([#7587]) ### Unstable - tokio: use cargo features instead of `--cfg` flags for `taskdump` and `io_uring` ([#7655], [#7621]) - fs: support `io_uring` in `fs::write` ([#7567]) - fs: support `io_uring` with `File::open()` ([#7617]) - fs: support `io_uring` with `OpenOptions` ([#7321]) - macros: add `local` runtime flavor ([#7375], [#7597]) ### Documented - io: clarify the zero capacity case of `AsyncRead::poll_read` ([#7580]) - io: fix typos in the docs of `AsyncFd` readiness guards ([#7583]) - net: clarify socket gets closed on drop ([#7526]) - net: clarify the behavior of `UCred::pid()` on Cygwin ([#7611]) - net: clarify the supported platform of `set_reuseport()` and `reuseport()` ([#7628]) - net: qualify that `SO_REUSEADDR` is only set on Unix ([#7533]) - runtime: add guide for choosing between runtime types ([#7635]) - runtime: clarify the behavior of `Handle::block_on` ([#7665]) - runtime: clarify the edge case of `Builder::global_queue_interval()` ([#7605]) - sync: clarify bounded channel panic behavior ([#7641]) - sync: clarify the behavior of `tokio::sync::watch::Receiver` ([#7584]) - sync: document cancel safety on `SetOnce::wait` ([#7506]) - sync: fix the docs of `parking_lot` feature flag ([#7663]) - sync: improve the docs of `UnboundedSender::send` ([#7661]) - sync: improve the docs of `sync::watch` ([#7601]) - sync: reword allocation failure paragraph in broadcast docs ([#7595]) - task: clarify the behavior of several `spawn_local` methods ([#7669]) - task: clarify the task ID reuse guarantees ([#7577]) - task: improve the example of `poll_proceed` ([#7586]) [#7321]: https://github.com/tokio-rs/tokio/pull/7321 [#7375]: https://github.com/tokio-rs/tokio/pull/7375 [#7490]: https://github.com/tokio-rs/tokio/pull/7490 [#7491]: https://github.com/tokio-rs/tokio/pull/7491 [#7494]: https://github.com/tokio-rs/tokio/pull/7494 [#7506]: https://github.com/tokio-rs/tokio/pull/7506 [#7511]: https://github.com/tokio-rs/tokio/pull/7511 [#7526]: https://github.com/tokio-rs/tokio/pull/7526 [#7530]: https://github.com/tokio-rs/tokio/pull/7530 [#7533]: https://github.com/tokio-rs/tokio/pull/7533 [#7535]: https://github.com/tokio-rs/tokio/pull/7535 [#7554]: https://github.com/tokio-rs/tokio/pull/7554 [#7567]: https://github.com/tokio-rs/tokio/pull/7567 [#7569]: https://github.com/tokio-rs/tokio/pull/7569 [#7573]: https://github.com/tokio-rs/tokio/pull/7573 [#7577]: https://github.com/tokio-rs/tokio/pull/7577 [#7580]: https://github.com/tokio-rs/tokio/pull/7580 [#7583]: https://github.com/tokio-rs/tokio/pull/7583 [#7584]: https://github.com/tokio-rs/tokio/pull/7584 [#7586]: https://github.com/tokio-rs/tokio/pull/7586 [#7587]: https://github.com/tokio-rs/tokio/pull/7587 [#7593]: https://github.com/tokio-rs/tokio/pull/7593 [#7594]: https://github.com/tokio-rs/tokio/pull/7594 [#7595]: https://github.com/tokio-rs/tokio/pull/7595 [#7597]: https://github.com/tokio-rs/tokio/pull/7597 [#7599]: https://github.com/tokio-rs/tokio/pull/7599 [#7601]: https://github.com/tokio-rs/tokio/pull/7601 [#7604]: https://github.com/tokio-rs/tokio/pull/7604 [#7605]: https://github.com/tokio-rs/tokio/pull/7605 [#7611]: https://github.com/tokio-rs/tokio/pull/7611 [#7617]: https://github.com/tokio-rs/tokio/pull/7617 [#7621]: https://github.com/tokio-rs/tokio/pull/7621 [#7622]: https://github.com/tokio-rs/tokio/pull/7622 [#7628]: https://github.com/tokio-rs/tokio/pull/7628 [#7629]: https://github.com/tokio-rs/tokio/pull/7629 [#7635]: https://github.com/tokio-rs/tokio/pull/7635 [#7638]: https://github.com/tokio-rs/tokio/pull/7638 [#7641]: https://github.com/tokio-rs/tokio/pull/7641 [#7645]: https://github.com/tokio-rs/tokio/pull/7645 [#7651]: https://github.com/tokio-rs/tokio/pull/7651 [#7655]: https://github.com/tokio-rs/tokio/pull/7655 [#7661]: https://github.com/tokio-rs/tokio/pull/7661 [#7663]: https://github.com/tokio-rs/tokio/pull/7663 [#7665]: https://github.com/tokio-rs/tokio/pull/7665 [#7666]: https://github.com/tokio-rs/tokio/pull/7666 [#7669]: https://github.com/tokio-rs/tokio/pull/7669 [#7672]: https://github.com/tokio-rs/tokio/pull/7672 [#7675]: https://github.com/tokio-rs/tokio/pull/7675