1.48.0 (October 14th, 2025)
The MSRV is increased to 1.71.
Added
- fs: add
File::max_buf_size(#7594) - io: export
ChainofAsyncReadExt::chain(#7599) - net: add
SocketAddr::as_abstract_name(#7491) - net: add
TcpStream::quickackandTcpStream::set_quickack(#7490) - net: implement
AsRef<Self>forTcpStreamandUnixStream(#7573) - task: add
LocalKey::try_get(#7666) - task: implement
Ordfortask::Id(#7530)
Changed
- deps: bump windows-sys to version 0.61 (#7645)
- fs: preserve
max_buf_sizewhen cloning aFile(#7593) - macros: suppress
clippy::unwrap_in_resultin#[tokio::main](#7651) - net: remove
PollEventednoise from Debug formats (#7675) - process: upgrade
Command::spawn_withto useFnOnce(#7511) - sync: remove inner mutex in
SetOnce(#7554) - sync: use
UnsafeCell::get_mutinMutex::get_mutandRwLock::get_mut(#7569) - time: reduce the generated code size of
Timeout<T>::poll(#7535)
Fixed
- macros: fix hygiene issue in
join!andtry_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::Senderinbroadcast::Sender::new()(#7629) - sync: fix implementation of unused
RwLock::try_*methods (#7587)
Unstable
- tokio: use cargo features instead of
--cfgflags fortaskdumpandio_uring(#7655, #7621) - fs: support
io_uringinfs::write(#7567) - fs: support
io_uringwithFile::open()(#7617) - fs: support
io_uringwithOpenOptions(#7321) - macros: add
localruntime flavor (#7375, #7597)
Documented
- io: clarify the zero capacity case of
AsyncRead::poll_read(#7580) - io: fix typos in the docs of
AsyncFdreadiness 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()andreuseport()(#7628) - net: qualify that
SO_REUSEADDRis 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_lotfeature 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_localmethods (#7669) - task: clarify the task ID reuse guarantees (#7577)
- task: improve the example of
poll_proceed(#7586)