github tokio-rs/tokio tokio-1.48.0
Tokio v1.48.0

latest releases: tokio-1.47.2, tokio-1.43.3
18 hours ago

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)

Don't miss a new tokio release

NewReleases is sending notifications on new releases.