Repository navigation
chore(deps): update rust crate tokio to v1.54.1 - #10
renovate[bot] wants to merge 1 commit into
Conversation
586b352 to
a260303
Compare
a260303 to
836e825
Compare
836e825 to
2ab1d93
Compare
2ab1d93 to
92bc859
Compare
92bc859 to
848e79c
Compare
There was a problem hiding this comment.
Summary
This PR is an automated dependency update from Renovate that upgrades the tokio crate from version 1.47.1 to 1.52.2. The change only affects Cargo.lock, updating tokio and its transitive dependencies (tokio-macros, mio, socket2, libc) while removing several dependencies that are no longer required (backtrace, io-uring, addr2line, gimli, object, miniz_oxide, adler2, rustc-demangle). These removed dependencies were likely optional features that are no longer enabled by default.
Findings
-
Nit
Cargo.toml:4: The Rust edition is set to2024, which is not yet a stable edition as of early 2026. This may cause compatibility issues with some toolchains. Consider using2021unless you have a specific need for nightly 2024 features. -
Non-blocking
Cargo.lock: The tokio update includes versions 1.51.0-1.52.2 which had some performance-related changes (LIFO slot stealing) that were subsequently reverted in 1.52.2 due to performance regressions. The final version (1.52.2) is stable, but you may want to verify performance is acceptable after deployment. -
Nit
src/main.rs:27: The application uses#[tokio::main]andtokio::spawnwhich are stable APIs. However, there are no unit or integration tests in the repository to verify the application works correctly after dependency updates. Consider adding basic tests that exercise the tokio runtime functionality. -
Non-blocking
Cargo.lock: Several transitive dependencies were removed (backtrace, io-uring, etc.). If your deployment environment relies on backtrace for error reporting, you may want to verify error messages are still informative. Theanyhowcrate should still provide adequate error context.
Suggested next steps
This is a routine dependency update with low risk. The CI pipeline (cargo test, cargo clippy, cargo fmt) should validate the update before merge. I recommend:
- Ensure CI passes with the updated dependencies
- Consider adding basic integration tests to catch runtime issues from future dependency updates
- Optionally verify the application starts and handles requests correctly in a staging environment after merge
Approval recommendation: ✅ Ready to merge pending CI success.
848e79c to
eeb7337
Compare
878ed77 to
37303ba
Compare
37303ba to
4f0906f
Compare
406fe4d to
330f4ce
Compare
330f4ce to
89600f9
Compare
89600f9 to
154d87e
Compare
154d87e to
e1b6bc1
Compare
e1b6bc1 to
7214501
Compare
This PR contains the following updates:
1.47.1→1.54.1Release Notes
tokio-rs/tokio (tokio)
v1.54.1: Tokio v1.54.1Compare Source
1.54.1 (October 21st, 2026)
Fixed
v1.54.0: Tokio v1.54.0Compare Source
1.54.0 (October 19th, 2026)
The 1.54.0 release includes all changes up to 1.53.3.
The MSRV is increased to 1.85. (#8514)
Added
File::set_times,File::set_modified, andfs::FileTimes(#8504)Defaultfornamed_pipe::{ClientOptions, ServerOptions}(#8378)Builder::max_io_events_per_busy_tick(#8410)tokio::runtime::worker_index()(#8431)SemaphorePermit::semaphore()(#8482)blocking_acquiremethods toSemaphore(#8269)watch::Receiver::is_closed(#8481)wasm32-unknown-emscriptentarget (#8281, #8422, #8528, #8628)Changed
File::set_max_buf_size(#8449)copy_bufcooperative (#8459)BufReaderorBufStreamis created with zero capacity (#8494)copy_bidirectional_with_sizes(#8454)Sink(#8663)UnixStream::pairandUnixDatagram::pairsockets as writable (#8444)UCredon Fuchsia (#8257)mio::unix::pipefor Unix child stdio (#8603)enable_ioavailable wheneverrtis enabled (#8387)block_in_placesetup into a non-generic function (#8315)max_io_events_per_tickis zero (#8476).awaitin nestedblock_onpanic message (#8501)Notify(#8325)Fixed
Fileinternal state when op fails (#8291)copy_buf(#8424)ScheduledIotick in readiness events (#8331)ErrorKind::Interruptedin more I/O operations (#8417, #8432, #8448, #8453, #8455, #8460)spawn_mandatory_blockingfor stdout and stderr (#8506)BufReaderseeks (#8599)CreateFileWhandle onSetNamedPipeHandleStatefailure (#8418)TcpSocketandUnixSocketlisten backlog (#8511)ENOTCONNas success inUnixStream::shutdown(#8526)--all-featureswithouttokio_unstable(#8401)shutdown_timeout()(#8497)spawn_blockinghang when only scheduler workers exist (#8408)usizefor permit count inSemaphorePermit(#8405)Unstable
io_uringhas no IO driver (#8165)spawn_blockingqueue (#8337)Documented
tokio::fs(#8265)from_raw_handle(#8378)TcpStream::connectreturns only the last error (#8421)runtime::Builder(#8297)available_parallelismin worker count docs (#8625)broadcast::channel()(#8420)Semaphoredocumentation (#8521)v1.53.3: Tokio v1.53.3Compare Source
1.53.3 (October 13th, 2026)
Added
AsyncFd::registerandAsyncFd::register_with_interest(#8587)Changed
AsyncFd::{new, with_interest, try_new, try_with_interest}(#8587)Fixed
DuplexStreamwakers outside the lock (#8618)unreachable_codeinjoin!andtry_join!forInfallible(#8518)current_thread(#8595)Fixed (unstable)
io_uringop alive when submission fails after push (#8185)v1.53.2: Tokio v1.53.2Compare Source
1.53.2 (October 3rd, 2026)
Fixed
AsyncFdregistration list on deregister" (#8540)Permitbefore sending value (#8560)MAX_PERMITSinSemaphore::acquire(#8548)Sender::closedoutside mutex (#8558)JoinSet(#8554)clear_entry(#8552)Fixed (unstable)
io_uringread length tou32::MAX(#8572)current_threadtask dumps from other runtimes (#8544)io_uringcontext if a completion waker panics (#8566)v1.53.1: Tokio v1.53.1Compare Source
1.53.1 (July 20th, 2026)
Fixed
OnceLock::waitfrom the Windows handler (#8300)Fixed (unstable)
Documented
v1.53.0: Tokio v1.53.0Compare Source
1.53.0 (July 17th, 2026)
Added
From<OwnedFd>andFrom<OwnedHandle>forFile(#8266)SocketAddrmethods to Unix sockets (#8144)Changed
#[inline]to IO trait impls for in-memory types (#8242)mpsc::{Receiver,UnboundedReceiver}now drops waker on drop, even if there are still senders (#8095)#[track_caller]totimeout_at()(#8077)Sleep(#8132)Fixed
Chain(#8251)FastRand(#8078)reserve[_many]returns permits (#8260)Trace::capture/Trace::trace_with(#8043).reset()(#8169)IO uring (unstable)
fs::try_exists(#8080)Documented
create_dir_allsucceeds if path exists (#8149)try_read*/try_write*readiness behavior (#8032)yield_nowdefers its waker (#8254)timeout_at()(#8077)v1.52.4: Tokio v1.52.4Compare Source
1.52.4 (July 16th, 2026)
Fixed
before_parkschedules work (#8222)Fixed (unstable)
v1.52.3: Tokio v1.52.3Compare Source
1.52.3 (May 8th, 2026)
Fixed
len()(#8062)OwnedPermit::release()method (#8075)RwLockhasmax_readers != 0(#8076)Emptyfromtry_recv()when mpsc is closed with outstanding permits (#8074)v1.52.2: Tokio v1.52.2Compare Source
1.52.2 (May 4th, 2026)
This release reverts the LIFO slot stealing change introduced in 1.51.0 (#7431), due to its performance impact. (#8100)
v1.52.1: Tokio v1.52.1Compare Source
1.52.1 (April 16th, 2026)
Fixed
spawn_blockingto hang (#8057)v1.52.0: Tokio v1.52.0Compare Source
1.52.0 (April 14th, 2026)
Added
AioSource::register_borrowedfor I/O safety support (#7992)try_iofunction tounix::pipesender and receiver types (#8030)Added (unstable)
Builder::enable_eager_driver_handoffsetting enable eager hand off of the I/O and time drivers before polling tasks (#8010)trace_with()for customized task dumps (#8025)impl FnMut()intrace_withinstead of justfn()(#8040)io_uringinAsyncReadforFile(#7907)Changed
spawn_blockingscalability with sharded queue (#7757)compare_exchange_weak()in worker queue (#8028)Fixed
Documented
oneshot::Sender::senddocs (#8026)sync::watch(#8035)ConnectionRefusederrors with UDP sockets (#7870)v1.51.6: Tokio v1.51.6Compare Source
1.51.6 (October 13th, 2026)
Added
AsyncFd::registerandAsyncFd::register_with_interest(#8587)Changed
AsyncFd::{new, with_interest, try_new, try_with_interest}(#8587)Fixed
DuplexStreamwakers outside the lock (#8618)unreachable_codeinjoin!andtry_join!forInfallible(#8518)current_thread(#8595)v1.51.5: Tokio v1.51.5Compare Source
1.51.5 (October 3rd, 2026)
Fixed
AsyncFdregistration list on deregister" (#8540)Permitbefore sending value (#8560)MAX_PERMITSinSemaphore::acquire(#8548)Sender::closedoutside mutex (#8558)JoinSet(#8554)clear_entry(#8552)Fixed (unstable)
current_threadtask dumps from other runtimes (#8544)io_uringcontext if a completion waker panics (#8566)v1.51.4: Tokio v1.51.4Compare Source
1.51.4 (July 16th, 2026)
Fixed
before_parkschedules work (#8222)v1.51.3: Tokio v1.51.3Compare Source
1.51.3 (May 8th, 2026)
Fixed
len()(#8062)OwnedPermit::release()method (#8075)RwLockhasmax_readers != 0(#8076)Emptyfromtry_recv()when mpsc is closed with outstanding permits (#8074)v1.51.2: Tokio v1.51.1Compare Source
1.51.2 (May 4th, 2026)
This release reverts the LIFO slot stealing change introduced in 1.51.0 (#7431), due to its performance impact. (#8100)
v1.51.1: Tokio v1.51.1Compare Source
1.51.1 (April 8th, 2026)
Fixed
SO_ERRORonrecvfor UDP sockets on Linux (#8001)Fixed (unstable)
worker_local_schedule_counttest (#8008)v1.51.0: Tokio v1.51.0Compare Source
1.51.0 (April 3rd, 2026)
Added
get_peer_credon Hurd (#7989)tokio::runtime::worker_index()(#7921)LocalRuntime(#7557)Changed
Fixed
notify_waiterspriority inNotify(#7996)Chan::recv_manywhen called with non-empty vector on closed channel (#7991)v1.50.0: Tokio v1.50.0Compare Source
1.50.0 (Mar 3rd, 2026)
Added
TcpStream::set_zero_linger(#7837)is_rt_shutdown_err(#7771)Changed
memchrreturns in-bounds pointer (#7792)write_buf(#7871)event_intervalis set to 0 (#7838)SetConsoleCtrlHandler(#7833)Registry(#7885)Fixed
AsyncFdregistration list on deregister (#7773)usedeclarations intokio::select!(#7929)GET_BUF_SIZEconstant fortarget_os = "android"(#7889)current_threadifbefore_parkdefers waker (#7835)block_in_place(#7879)num_idle_threadson shutdown (#7910, #7918, #7922)Unstable
Documented
AsyncWriteExt::shutdown()(#7908)AsyncWritedocumentation (#7875)Runtime::spawn(#7803)event_intervaldoc (#7932)recvreturnsNoneonce closed and no more messages (#7920)spawn_blockingvs dedicated threads (#7923)JoinHandlecompletion (#7825)None(#7869)Builder::spawn_local(#7828)v1.49.0: Tokio v1.49.0Compare Source
1.49.0 (January 3rd, 2026)
Added
TCLASSoption on IPv6 (#7781)runtime::id::Id(#7125)ExtendforJoinSet(#7195)LocalSet::id()(#7776)Changed
{TcpStream,TcpSocket}::set_linger(#7752)Fixed
join!andtry_join!(#7766)TryRecvError::DisconnectedfromReceiver::try_recvafterReceiver::close(#7686)Debugimplementation (#7720)Unstable
EINTRinfs::writefor io-uring (#7786)tokio::fs::read(#7696)EPERM(#7724)Documented
bounded.rsandpark.rs(#7817)SyncIoBridgecross-references tocopyandcopy_buf(#7798)AsyncWritedoes not inherit fromstd::io::Write(#7705)num_alive_tasksis not strongly consistent (#7614)TcpStream::peek(#7305)unix::OwnedWriteHalf(#7742)TcpSocketdocs (#7738)LocalRuntimeinnew_current_threaddocs (#7820)mpsc::Sender::try_senddocs (#7721)oneshot::Receiver(#7780)errorsof mpsc (#7722)spawn_localusage on local runtime (#7689)v1.48.0: Tokio v1.48.0Compare Source
1.48.0 (October 14th, 2025)
The MSRV is increased to 1.71.
Added
File::max_buf_size(#7594)ChainofAsyncReadExt::chain(#7599)SocketAddr::as_abstract_name(#7491)TcpStream::quickackandTcpStream::set_quickack(#7490)AsRef<Self>forTcpStreamandUnixStream(#7573)LocalKey::try_get(#7666)Ordfortask::Id(#7530)Changed
max_buf_sizewhen cloning aFile(#7593)clippy::unwrap_in_resultin#[tokio::main](#7651)PollEventednoise from Debug formats (#7675)Command::spawn_withto useFnOnce(#7511)SetOnce(#7554)UnsafeCell::get_mutinMutex::get_mutandRwLock::get_mut(#7569)Timeout<T>::poll(#7535)Fixed
join!andtry_join!(#7638)wake_by_ref()even if already woken (#7622)broadcast::Senderinbroadcast::Sender::new()(#7629)RwLock::try_*methods (#7587)Unstable
--cfgflags fortaskdumpandio_uring(#7655, #7621)io_uringinfs::write(#7567)io_uringwithFile::open()(#7617)io_uringwithOpenOptions(#7321)localruntime flavor (#7375, #7597)Documented
AsyncRead::poll_read(#7580)AsyncFdreadiness guards (#7583)UCred::pid()on Cygwin (#7611)set_reuseport()andreuseport()(#7628)SO_REUSEADDRis only set on Unix (#7533)Handle::block_on(#7665)Builder::global_queue_interval()(#7605)tokio::sync::watch::Receiver(#7584)SetOnce::wait(#7506)parking_lotfeature flag (#7663)UnboundedSender::send(#7661)sync::watch(#7601)spawn_localmethods (#7669)poll_proceed(#7586)v1.47.5: Tokio v1.47.5Compare Source
1.47.5 (May 7th, 2026)
Fixed
len()(#8062)OwnedPermit::release()method (#8075)RwLockhasmax_readers != 0(#8076)Emptyfromtry_recv()when mpsc is closed with outstanding permits (#8074)v1.47.4: Tokio v1.47.4Compare Source
1.47.4 (April 2nd, 2026)
Fixed
Chan::recv_manywhen called with non-empty vector on closed channel (#7991)v1.47.3Compare Source
v1.47.2Compare Source
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.