Update all non-major dependencies #1

Open
renovatebot wants to merge 1 commit from renovate/all-minor-patch into main
Collaborator

This PR contains the following updates:

Package Type Update Change
clap dependencies minor 2.33.3 -> 2.34.0
log dependencies patch 0.4.14 -> 0.4.28
pnet_packet dependencies minor 0.28.0 -> 0.35.0
simplelog dependencies minor 0.10.2 -> 0.12.0
systemd dependencies minor 0.9.0 -> 0.10.0
tokio (source) dependencies minor 1.12.0 -> 1.48.0

Release Notes

clap-rs/clap (clap)

v2.34.0

Compare Source

  • Updates to Rust 2018 edition and bumps the MSRV to Rust 1.46

v2.33.4

Compare Source

Bug Fixes
  • prevents panic: swallows broken pipe errors on error output (7a729bc4)
rust-lang/log (log)

v0.4.28

Compare Source

v0.4.27

Compare Source

What's Changed

Full Changelog: https://github.com/rust-lang/log/compare/0.4.26...0.4.27

v0.4.26

Compare Source

What's Changed

Full Changelog: https://github.com/rust-lang/log/compare/0.4.26...0.4.27

v0.4.25

Compare Source

What's Changed

Full Changelog: https://github.com/rust-lang/log/compare/0.4.25...0.4.26

v0.4.24

Compare Source

What's Changed

Full Changelog: https://github.com/rust-lang/log/compare/0.4.24...0.4.25

v0.4.23

Compare Source

What's Changed

Full Changelog: https://github.com/rust-lang/log/compare/0.4.23...0.4.24

v0.4.22

Compare Source

What's Changed
New Contributors

Full Changelog: https://github.com/rust-lang/log/compare/0.4.22...0.4.23

v0.4.21

Compare Source

What's Changed
New Contributors

Full Changelog: https://github.com/rust-lang/log/compare/0.4.21...0.4.22

v0.4.20

Compare Source

v0.4.19

Compare Source

v0.4.18

Compare Source

v0.4.17

  • Update kv_unstable internal dependencies.

v0.4.16

  • Fix a conflict with unqualified Option use in macros.

v0.4.15

Compare Source

  • Silence a warning about the deprecated spin_loop_hint.
  • Relax ordering in the atomic set_max_level call.
  • Add thumbv4t-none-eabi to targets that don't support atomics
  • Allow levels to be iterated over.
  • Implement Log on some common wrapper types.
  • Improvements to test coverage.
  • Improvements to documentation.
  • Add key-value support to the log! macros.
  • Tighten kv_unstable internal dependencies, so they don't bump past their current alpha.
  • Add a simple visit API to kv_unstable.
  • Support NonZero* integers as values in structured logging
  • Support static strings as keys in structured logging
libpnet/libpnet (pnet_packet)

v0.35.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/libpnet/libpnet/compare/v0.34.0...v0.35.0

v0.34.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/libpnet/libpnet/compare/v0.33.0...v0.34.0

v0.33.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/libpnet/libpnet/compare/v0.32.0...v0.33.0

v0.32.0

Compare Source

What's Changed

  • pnet_macros: Fix handle_vec_primitive for multi byte primitives by @​jefftt in #​596
  • Add missing #[repr(C)] attributes to structs
  • Enable the std feature by default use --no-default-features for nostd support

New Contributors

Full Changelog: https://github.com/libpnet/libpnet/compare/v0.31.0...v0.32.0

v0.31.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/libpnet/libpnet/compare/v0.30.0...v0.31.0

v0.30.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/libpnet/libpnet/compare/v0.29.0...v0.30.0

v0.29.0

Compare Source

  • Update Rust edition to 2021
  • Update time dev-dependency
  • Remove deprecated interface.mac_address(), use interface.mac instead
  • Make pnet_datalink::Channel be #[non_exhaustive]
  • Support more interface flags
  • Fix issue preventing filling the datalink write buffer on Linux
  • Clean up/better document some unsafety
  • Add icmpv6 echo request and reply packet types
  • Add Linux SLL packet type
  • Various code clean-ups
drakulix/simplelog.rs (simplelog)

v0.12.2

Compare Source

v0.12.1

Compare Source

v0.12.0

Compare Source

  • Replaces the semingly unmaintained chrono library with the time crate.
  • Addresses through this update
    • RUSTSEC-2020-0159 (chrono)
    • RUSTSEC-2020-0071 (time)
  • ConfigBuilder::set_time_to_local is replaced by ConfigBuilder::set_time_offset_to_local.
    • This function requires the new (and by default activated) local-offset feature.
    • This function may fail, for more information read the docs.
    • simplelog will not determine the local offset dynamically anymore, but only once, when this config option is set.
      • Due to safety reasons there is no way to provide this property currently.
  • ConfigBuilder::set_time_offset now takes a time::UtcOffset instead of a chrono::FixedOffset.
  • ConfigBuilder::set_time_format has been replaced by three new variants
    • ConfigBuilder::set_time_format_rfc2822 sets the time format to use the format described by rfc2822.
    • ConfigBuilder::set_time_format_rfc3339 sets the time format to use the format described by rfc3339.
    • ConfigBuilder::set_time_format_custom sets the time format to a custom time format best created using time::macros::format_description.
      • Runtime provided time format configuration is possible, but difficult due to lifetime constraints.
      • Fixing this will require a solution to time-rs/time#429
    • Note: The default format is unchanged "[hour]:[minute]:[second]"

v0.11.2

Compare Source

v0.11.1

Compare Source

v0.11.0

Compare Source

codyps/rust-systemd (systemd)

v0.10.1

Compare Source

v0.10.0

Compare Source

v0.9.3

Compare Source

v0.9.2

Compare Source

v0.9.1

Compare Source

tokio-rs/tokio (tokio)

v1.48.0: Tokio v1.48.0

Compare Source

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)

v1.47.2

Compare Source

v1.47.1: Tokio v1.47.1

Compare Source

1.47.1 (August 1st, 2025)

Fixed
  • process: fix panic from spurious pidfd wakeup (#​7494)
  • sync: fix broken link of Python asyncio.Event in SetOnce docs (#​7485)

v1.47.0: Tokio v1.47.0

Compare Source

1.47.0 (July 25th, 2025)

This release adds poll_proceed and cooperative to the coop module for
cooperative scheduling, adds SetOnce to the sync module which provides
similar functionality to [std::sync::OnceLock], and adds a new method
sync::Notify::notified_owned() which returns an OwnedNotified without
a lifetime parameter.

Added

  • coop: add cooperative and poll_proceed (#​7405)
  • sync: add SetOnce (#​7418)
  • sync: add sync::Notify::notified_owned() (#​7465)

Changed

  • deps: upgrade windows-sys 0.52 → 0.59 ([#​7117])
  • deps: update to socket2 v0.6 ([#​7443])
  • sync: improve AtomicWaker::wake performance (#​7450)

Documented

  • metrics: fix listed feature requirements for some metrics (#​7449)
  • runtime: improve safety comments of Readiness<'_> (#​7415)

v1.46.1: Tokio v1.46.1

Compare Source

1.46.1 (July 4th, 2025)

This release fixes incorrect spawn locations in runtime task hooks for tasks spawned using tokio::spawn rather than Runtime::spawn. This issue only effected the spawn location in TaskMeta::spawned_at, and did not effect task locations in Tracing events.

Unstable

  • runtime: add TaskMeta::spawn_location tracking where a task was spawned (#​7440)

v1.46.0: Tokio v1.46.0

Compare Source

1.46.0 (July 2nd, 2025)

Fixed
  • net: fixed TcpStream::shutdown incorrectly returning an error on macOS (#​7290)

Added

  • sync: mpsc::OwnedPermit::{same_channel, same_channel_as_sender} methods (#​7389)
  • macros: biased option for join! and try_join!, similar to select! (#​7307)
  • net: support for cygwin (#​7393)
  • net: support pope::OpenOptions::read_write on Android (#​7426)
  • net: add Clone implementation for net::unix::SocketAddr (#​7422)

Changed

  • runtime: eliminate unnecessary lfence while operating on queue::Local<T> (#​7340)
  • task: disallow blocking in LocalSet::{poll,drop} (#​7372)

Unstable

  • runtime: add TaskMeta::spawn_location tracking where a task was spawned (#​7417)
  • runtime: removed borrow from LocalOptions parameter to runtime::Builder::build_local (#​7346)

Documented

  • io: clarify behavior of seeking when start_seek is not used (#​7366)
  • io: document cancellation safety of AsyncWriteExt::flush (#​7364)
  • net: fix docs for recv_buffer_size method (#​7336)
  • net: fix broken link of RawFd in TcpSocket docs (#​7416)
  • net: update AsRawFd doc link to current Rust stdlib location (#​7429)
  • readme: fix double period in reactor description (#​7363)
  • runtime: add doc note that on_*_task_poll is unstable (#​7311)
  • sync: update broadcast docs on allocation failure (#​7352)
  • time: add a missing panic scenario of time::advance (#​7394)

v1.45.1: Tokio v1.45.1

Compare Source

1.45.1 (May 24th, 2025)

This fixes a regression on the wasm32-unknown-unknown target, where code that previously did not panic due to calls to Instant::now() started failing. This is due to the stabilization of the first time-based metric.

Fixed
  • Disable time-based metrics on wasm32-unknown-unknown (#​7322)

v1.45.0: Tokio v1.45.0

Compare Source

Added
  • metrics: stabilize worker_total_busy_duration, worker_park_count, and worker_unpark_count (#​6899, #​7276)
  • process: add Command::spawn_with (#​7249)
Changed
  • io: do not require Unpin for some trait impls (#​7204)
  • rt: mark runtime::Handle as unwind safe (#​7230)
  • time: revert internal sharding implementation (#​7226)
Unstable
  • rt: remove alt multi-threaded runtime (#​7275)

v1.44.2: Tokio v1.44.2

Compare Source

This release fixes a soundness issue in the broadcast channel. The channel
accepts values that are Send but !Sync. Previously, the channel called
clone() on these values without synchronizing. This release fixes the channel
by synchronizing calls to .clone() (Thanks Austin Bonander for finding and
reporting the issue).

Fixed
  • sync: synchronize clone() call in broadcast channel (#​7232)

v1.44.1: Tokio v1.44.1

Compare Source

1.44.1 (March 13th, 2025)

Fixed
  • rt: skip defer queue in block_in_place context (#​7216)

v1.44.0: Tokio v1.44.0

Compare Source

1.44.0 (March 7th, 2025)

This release changes the from_std method on sockets to panic if a blocking socket is provided. We determined this change is not a breaking change as Tokio is not intended to operate using blocking sockets. Doing so results in runtime hangs and should be considered a bug. Accidentally passing a blocking socket to Tokio is one of the most common user mistakes. If this change causes an issue for you, please comment on #​7172.

Added
  • coop: add task::coop module (#​7116)
  • process: add Command::get_kill_on_drop() (#​7086)
  • sync: add broadcast::Sender::closed (#​6685, #​7090)
  • sync: add broadcast::WeakSender (#​7100)
  • sync: add oneshot::Receiver::is_empty() (#​7153)
  • sync: add oneshot::Receiver::is_terminated() (#​7152)
Fixed
  • fs: empty reads on File should not start a background read (#​7139)
  • process: calling start_kill on exited child should not fail (#​7160)
  • signal: fix CTRL_CLOSE, CTRL_LOGOFF, CTRL_SHUTDOWN on windows (#​7122)
  • sync: properly handle panic during mpsc drop (#​7094)
Changes
  • runtime: clean up magic number in registration set (#​7112)
  • coop: make coop yield using waker defer strategy (#​7185)
  • macros: make select! budget-aware (#​7164)
  • net: panic when passing a blocking socket to from_std (#​7166)
  • io: clean up buffer casts (#​7142)
Changes to unstable APIs
  • rt: add before and after task poll callbacks (#​7120)
  • tracing: make the task tracing API unstable public (#​6972)
Documented
  • docs: fix nesting of sections in top-level docs (#​7159)
  • fs: rename symlink and hardlink parameter names (#​7143)
  • io: swap reader/writer in simplex doc test (#​7176)
  • macros: docs about select! alternatives (#​7110)
  • net: rename the argument for send_to (#​7146)
  • process: add example for reading Child stdout (#​7141)
  • process: clarify Child::kill behavior (#​7162)
  • process: fix grammar of the ChildStdin struct doc comment (#​7192)
  • runtime: consistently use worker_threads instead of core_threads (#​7186)

v1.43.3

Compare Source

v1.43.2: Tokio v1.43.2

Compare Source

1.43.2 (August 1st, 2025)

Fixed
  • process: fix panic from spurious pidfd wakeup (#​7494)

v1.43.1

Compare Source

v1.43.0: Tokio v1.43.0

Compare Source

1.43.0 (Jan 8th, 2025)

Added
  • net: add UdpSocket::peek methods (#​7068)
  • net: add support for Haiku OS (#​7042)
  • process: add Command::into_std() (#​7014)
  • signal: add SignalKind::info on illumos (#​6995)
  • signal: add support for realtime signals on illumos (#​7029)
Fixed
  • io: don't call set_len before initializing vector in Blocking (#​7054)
  • macros: suppress clippy::needless_return in #[tokio::main] (#​6874)
  • runtime: fix thread parking on WebAssembly (#​7041)
Changes
  • chore: use unsync loads for unsync_load (#​7073)
  • io: use Buf::put_bytes in Repeat read impl (#​7055)
  • task: drop the join waker of a task eagerly (#​6986)
Changes to unstable APIs
  • metrics: improve flexibility of H2Histogram Configuration (#​6963)
  • taskdump: add accessor methods for backtrace (#​6975)
Documented
  • io: clarify ReadBuf::uninit allows initialized buffers as well (#​7053)
  • net: fix ambiguity in TcpStream::try_write_vectored docs (#​7067)
  • runtime: fix LocalRuntime doc links (#​7074)
  • sync: extend documentation for watch::Receiver::wait_for (#​7038)
  • sync: fix typos in OnceCell docs (#​7047)

v1.42.1: Tokio v1.42.1

Compare Source

This release fixes a soundness issue in the broadcast channel. The channel accepts values that are Send but !Sync. Previously, the channel called clone() on these values without synchronizing. This release fixes the channel by synchronizing calls to .clone() (Thanks Austin Bonander for finding and reporting the issue).

Fixed
  • sync: synchronize clone() call in broadcast channel (#​7232)

v1.42.0: Tokio v1.42.0

Compare Source

1.42.0 (Dec 3rd, 2024)

Added
  • io: add AsyncFd::{try_io, try_io_mut} (#​6967)
Fixed
  • io: avoid ptr->ref->ptr roundtrip in RegistrationSet (#​6929)
  • runtime: do not defer yield_now inside block_in_place (#​6999)
Changes
  • io: simplify io readiness logic (#​6966)
Documented
  • net: fix docs for tokio::net::unix::{pid_t, gid_t, uid_t} (#​6791)
  • time: fix a typo in Instant docs (#​6982)

v1.41.1: Tokio v1.41.1

Compare Source

1.41.1 (Nov 7th, 2024)

Fixed
  • metrics: fix bug with wrong number of buckets for the histogram (#​6957)
  • net: display net requirement for net::UdpSocket in docs (#​6938)
  • net: fix typo in TcpStream internal comment (#​6944)

v1.41.0: Tokio v1.41.0

Compare Source

1.41.0 (Oct 22th, 2024)

Added
Added (unstable)
  • metrics: add H2 Histogram option to improve histogram granularity (#​6897)
  • metrics: rename some histogram apis (#​6924)
  • runtime: add LocalRuntime (#​6808)
Changed
  • runtime: box futures larger than 16k on release mode (#​6826)
  • sync: add #[must_use] to Notified (#​6828)
  • sync: make watch cooperative (#​6846)
  • sync: make broadcast::Receiver cooperative (#​6870)
  • task: add task size to tracing instrumentation (#​6881)
  • wasm: enable cfg_fs for wasi target (#​6822)
Fixed
  • net: fix regression of abstract socket path in unix socket (#​6838)
Documented
  • io: recommend OwnedFd with AsyncFd (#​6821)
  • io: document cancel safety of AsyncFd methods (#​6890)
  • macros: render more comprehensible documentation for join and try_join (#​6814, #​6841)
  • net: fix swapped examples for TcpSocket::set_nodelay and TcpSocket::nodelay (#​6840)
  • sync: document runtime compatibility (#​6833)

v1.40.0: Tokio v1.40.0

Compare Source

1.40.0 (August 30th, 2024)

Added
  • io: add util::SimplexStream (#​6589)
  • process: stabilize Command::process_group (#​6731)
  • sync: add {TrySendError,SendTimeoutError}::into_inner (#​6755)
  • task: add JoinSet::join_all (#​6784)
Added (unstable)
  • runtime: add Builder::{on_task_spawn, on_task_terminate} (#​6742)
Changed
  • io: use vectored io for write_all_buf when possible (#​6724)
  • runtime: prevent niche-optimization to avoid triggering miri (#​6744)
  • sync: mark mpsc types as UnwindSafe (#​6783)
  • sync,time: make Sleep and BatchSemaphore instrumentation explicit roots (#​6727)
  • task: use NonZeroU64 for task::Id (#​6733)
  • task: include panic message when printing JoinError (#​6753)
  • task: add #[must_use] to JoinHandle::abort_handle (#​6762)
  • time: eliminate timer wheel allocations (#​6779)
Documented
  • docs: clarify that [build] section doesn't go in Cargo.toml (#​6728)
  • io: clarify zero remaining capacity case (#​6790)
  • macros: improve documentation for select! (#​6774)
  • sync: document mpsc channel allocation behavior (#​6773)

v1.39.3: Tokio v1.39.3

Compare Source

1.39.3 (August 17th, 2024)

This release fixes a regression where the unix socket api stopped accepting the abstract socket namespace. (#​6772)

v1.39.2: Tokio v1.39.2

Compare Source

1.39.2 (July 27th, 2024)

This release fixes a regression where the select! macro stopped accepting expressions that make use of temporary lifetime extension. (#​6722)

v1.39.1: Tokio v1.39.1

Compare Source

1.39.1 (July 23rd, 2024)

This release reverts "time: avoid traversing entries in the time wheel twice" because it contains a bug. (#​6715)

v1.39.0: Tokio v1.39.0

Compare Source

1.39.0 (July 23rd, 2024)

  • This release bumps the MSRV to 1.70. (#​6645)
  • This release upgrades to mio v1. (#​6635)
  • This release upgrades to windows-sys v0.52 (#​6154)
Added
  • io: implement AsyncSeek for Empty (#​6663)
  • metrics: stabilize num_alive_tasks (#​6619, #​6667)
  • process: add Command::as_std_mut (#​6608)
  • sync: add watch::Sender::same_channel (#​6637)
  • sync: add {Receiver,UnboundedReceiver}::{sender_strong_count,sender_weak_count} (#​6661)
  • sync: implement Default for watch::Sender (#​6626)
  • task: implement Clone for AbortHandle (#​6621)
  • task: stabilize consume_budget (#​6622)
Changed
  • io: improve panic message of ReadBuf::put_slice() (#​6629)
  • io: read during write in copy_bidirectional and copy (#​6532)
  • runtime: replace num_cpus with available_parallelism (#​6709)
  • task: avoid stack overflow when passing large future to block_on (#​6692)
  • time: avoid traversing entries in the time wheel twice (#​6584)
  • time: support IntoFuture with timeout (#​6666)
  • macros: support IntoFuture with join! and select! (#​6710)
Fixed
  • docs: fix docsrs builds with the fs feature enabled (#​6585)
  • io: only use short-read optimization on known-to-be-compatible platforms (#​6668)
  • time: fix overflow panic when using large durations with Interval (#​6612)
Added (unstable)
  • macros: allow unhandled_panic behavior for #[tokio::main] and #[tokio::test] (#​6593)
  • metrics: add spawned_tasks_count (#​6114)
  • metrics: add worker_park_unpark_count (#​6696)
  • metrics: add worker thread id (#​6695)
Documented
  • io: update tokio::io::stdout documentation (#​6674)
  • macros: typo fix in join.rs and try_join.rs (#​6641)
  • runtime: fix typo in unhandled_panic (#​6660)
  • task: document behavior of JoinSet::try_join_next when all tasks are running (#​6671)

v1.38.2: Tokio v1.38.2

Compare Source

This release fixes a soundness issue in the broadcast channel. The channel accepts values that are Send but !Sync. Previously, the channel called clone() on these values without synchronizing. This release fixes the channel by synchronizing calls to .clone() (Thanks Austin Bonander for finding and reporting the issue).

Fixed
  • sync: synchronize clone() call in broadcast channel (#​7232)

v1.38.1: Tokio v1.38.1

Compare Source

1.38.1 (July 16th, 2024)

This release fixes the bug identified as (#​6682), which caused timers not
to fire when they should.

Fixed
  • time: update wake_up while holding all the locks of sharded time wheels (#​6683)

v1.38.0: Tokio v1.38.0

Compare Source

This release marks the beginning of stabilization for runtime metrics. It
stabilizes RuntimeMetrics::worker_count. Future releases will continue to
stabilize more metrics.

Added
  • fs: add File::create_new (#​6573)
  • io: add copy_bidirectional_with_sizes (#​6500)
  • io: implement AsyncBufRead for Join (#​6449)
  • net: add Apple visionOS support (#​6465)
  • net: implement Clone for NamedPipeInfo (#​6586)
  • net: support QNX OS (#​6421)
  • sync: add Notify::notify_last (#​6520)
  • sync: add mpsc::Receiver::{capacity,max_capacity} (#​6511)
  • sync: add split method to the semaphore permit (#​6472, #​6478)
  • task: add tokio::task::join_set::Builder::spawn_blocking (#​6578)
  • wasm: support rt-multi-thread with wasm32-wasi-preview1-threads (#​6510)
Changed
  • macros: make #[tokio::test] append #[test] at the end of the attribute list (#​6497)
  • metrics: fix blocking_threads count (#​6551)
  • metrics: stabilize RuntimeMetrics::worker_count (#​6556)
  • runtime: move task out of the lifo_slot in block_in_place (#​6596)
  • runtime: panic if global_queue_interval is zero (#​6445)
  • sync: always drop message in destructor for oneshot receiver (#​6558)
  • sync: instrument Semaphore for task dumps (#​6499)
  • sync: use FIFO ordering when waking batches of wakers (#​6521)
  • task: make LocalKey::get work with Clone types (#​6433)
  • tests: update nix and mio-aio dev-dependencies (#​6552)
  • time: clean up implementation (#​6517)
  • time: lazily init timers on first poll (#​6512)
  • time: remove the true_when field in TimerShared (#​6563)
  • time: use sharding for timer implementation (#​6534)
Fixed
  • taskdump: allow building taskdump docs on non-unix machines (#​6564)
  • time: check for overflow in Interval::poll_tick (#​6487)
  • sync: fix incorrect is_empty on mpsc block boundaries (#​6603)
Documented
  • fs: rewrite file system docs (#​6467)
  • io: fix stdin documentation (#​6581)
  • io: fix obsolete reference in ReadHalf::unsplit() documentation (#​6498)
  • macros: render more comprehensible documentation for select! (#​6468)
  • net: add missing types to module docs (#​6482)
  • net: fix misleading NamedPipeServer example (#​6590)
  • sync: add examples for SemaphorePermit, OwnedSemaphorePermit (#​6477)
  • sync: document that Barrier::wait is not cancel safe (#​6494)
  • sync: explain relation between watch::Sender::{subscribe,closed} (#​6490)
  • task: clarify that you can't abort spawn_blocking tasks (#​6571)
  • task: fix a typo in doc of LocalSet::run_until (#​6599)
  • time: fix test-util requirement for pause and resume in docs (#​6503)

v1.37.0: Tokio v1.37.0

Compare Source

1.37.0 (March 28th, 2024)

Added
  • fs: add set_max_buf_size to tokio::fs::File (#​6411)
  • io: add try_new and try_with_interest to AsyncFd (#​6345)
  • sync: add forget_permits method to semaphore (#​6331)
  • sync: add is_closed, is_empty, and len to mpsc receivers (#​6348)
  • sync: add a rwlock() method to owned RwLock guards (#​6418)
  • sync: expose strong and weak counts of mpsc sender handles (#​6405)
  • sync: implement Clone for watch::Sender (#​6388)
  • task: add TaskLocalFuture::take_value (#​6340)
  • task: implement FromIterator for JoinSet (#​6300)
Changed
  • io: make io::split use a mutex instead of a spinlock (#​6403)
Fixed
  • docs: fix docsrs build without net feature (#​6360)
  • macros: allow select with only else branch (#​6339)
  • runtime: fix leaking registration entries when os registration fails (#​6329)
Documented
  • io: document cancel safety of AsyncBufReadExt::fill_buf (#​6431)
  • io: document cancel safety of AsyncReadExt's primitive read functions (#​6337)
  • runtime: add doc link from Runtime to #[tokio::main] (#​6366)
  • runtime: make the enter example deterministic (#​6351)
  • sync: add Semaphore example for limiting the number of outgoing requests (#​6419)
  • sync: fix missing period in broadcast docs (#​6377)
  • sync: mark mpsc::Sender::downgrade with #[must_use] (#​6326)
  • sync: reorder const_new before new_with (#​6392)
  • sync: update watch channel docs (#​6395)
  • task: fix documentation links (#​6336)
Changed (unstable)
  • runtime: include task Id in taskdumps (#​6328)
  • runtime: panic if unhandled_panic is enabled when not supported (#​6410)

v1.36.0: Tokio v1.36.0

Compare Source

1.36.0 (February 2nd, 2024)

Added
  • io: add tokio::io::Join (#​6220)
  • io: implement AsyncWrite for Empty (#​6235)
  • net: add support for anonymous unix pipes (#​6127)
  • net: add UnixSocket (#​6290)
  • net: expose keepalive option on TcpSocket (#​6311)
  • sync: add {Receiver,UnboundedReceiver}::poll_recv_many (#​6236)
  • sync: add Sender::{try_,}reserve_many (#​6205)
  • sync: add watch::Receiver::mark_unchanged (#​6252)
  • task: add JoinSet::try_join_next (#​6280)
Changed
  • io: make copy cooperative (#​6265)
  • io: make repeat and sink cooperative (#​6254)
  • io: simplify check for empty slice (#​6293)
  • process: use pidfd on Linux when available (#​6152)
  • sync: use AtomicBool in broadcast channel future (#​6298)
Documented
  • io: clarify clear_ready docs (#​6304)
  • net: document that *Fd traits on TcpSocket are unix-only (#​6294)
  • sync: document FIFO behavior of tokio::sync::Mutex (#​6279)
  • chore: typographic improvements (#​6262)
  • runtime: remove obsolete comment (#​6303)
  • task: fix typo (#​6261)

v1.35.1: Tokio v1.35.1

Compare Source

1.35.1 (December 19, 2023)

This is a forward part of a change that was backported to 1.25.3.

Fixed
  • io: add budgeting to tokio::runtime::io::registration::async_io (#​6221)

v1.35.0: Tokio v1.35.0

Compare Source

1.35.0 (December 8th, 2023)

Added
  • net: add Apple watchOS support (#​6176)
Changed
  • io: drop the Sized requirements from AsyncReadExt.read_buf (#​6169)
  • runtime: make Runtime unwind safe (#​6189)
  • runtime: reduce the lock contention in task spawn (#​6001)
  • tokio: update nix dependency to 0.27.1 (#​6190)
Fixed
  • chore: make --cfg docsrs work without net feature (#​6166)
  • chore: use relaxed load for unsync_load on miri (#​6179)
  • runtime: handle missing context on wake (#​6148)
  • taskdump: fix taskdump cargo config example (#​6150)
  • taskdump: skip notified tasks during taskdumps (#​6194)
  • tracing: avoid creating resource spans with current parent, use a None parent instead (#​6107)
  • tracing: make task span explicit root (#​6158)
Documented
  • io: flush in AsyncWriteExt examples (#​6149)
  • runtime: document fairness guarantees and current behavior (#​6145)
  • task: document cancel safety of LocalSet::run_until (#​6147)

v1.34.0: Tokio v1.34.0

Compare Source

Fixed
  • io: allow clear_readiness after io driver shutdown (#​6067)
  • io: fix integer overflow in take (#​6080)
  • io: fix I/O resource hang (#​6134)
  • sync: fix broadcast::channel link (#​6100)
Changed
  • macros: use ::core qualified imports instead of ::std inside tokio::test macro (#​5973)
Added
  • fs: update cfg attr in fs::read_dir to include aix (#​6075)
  • sync: add mpsc::Receiver::recv_many (#​6010)
  • tokio: added vita target support (#​6094)

v1.33.0: Tokio v1.33.0

Compare Source

1.33.0 (October 9, 2023)

Fixed
  • io: mark Interest::add with #[must_use] (#​6037)
  • runtime: fix cache line size for RISC-V (#​5994)
  • sync: prevent lock poisoning in watch::Receiver::wait_for (#​6021)
  • task: fix spawn_local source location (#​5984)
Changed
  • sync: use Acquire/Release orderings instead of SeqCst in watch (#​6018)
Added
  • fs: add vectored writes to tokio::fs::File (#​5958)
  • io: add Interest::remove method (#​5906)
  • io: add vectored writes to DuplexStream (#​5985)
  • net: add Apple tvOS support (#​6045)
  • sync: add ?Sized bound to {MutexGuard,OwnedMutexGuard}::map (#​5997)
  • sync: add watch::Receiver::mark_unseen (#​5962, #​6014, #​6017)
  • sync: add watch::Sender::new (#​5998)
  • sync: add const fn OnceCell::from_value (#​5903)
Removed
  • remove unused stats feature (#​5952)
Documented
Unstable
  • taskdump: fix potential deadlock (#​6036)

v1.32.1: Tokio v1.32.1

Compare Source

1.32.1 (December 19, 2023)

This is a forward part of a change that was backported to 1.25.3.

Fixed
  • io: add budgeting to tokio::runtime::io::registration::async_io (#​6221)

v1.32.0: Tokio v1.32.0

Compare Source

Fixed
  • sync: fix potential quadratic behavior in broadcast::Receiver (#​5925)
Added
  • process: stabilize Command::raw_arg (#​5930)
  • io: enable awaiting error readiness (#​5781)
Unstable
  • rt(alt): improve the scalability of alt runtime as the number of cores grows (#​5935)

v1.31.0: Tokio v1.31.0

Compare Source

Fixed
  • io: delegate WriteHalf::poll_write_vectored (#​5914)
Unstable
  • rt(unstable): fix memory leak in unstable next-gen scheduler prototype (#​5911)
  • rt: expose mean task poll time metric (#​5927)

v1.30.0: Tokio v1.30.0

Compare Source

1.30.0 (August 9, 2023)

This release bumps the MSRV of Tokio to 1.63. (#​5887)

Changed
  • tokio: reduce LLVM code generation (#​5859)
  • io: support --cfg mio_unsupported_force_poll_poll flag (#​5881)
  • sync: make const_new methods always available (#​5885)
  • sync: avoid false sharing in mpsc channel (#​5829)
  • rt: pop at least one task from inject queue (#​5908)
Added
  • sync: add broadcast::Sender::new (#​5824)
  • net: implement UCred for espidf (#​5868)
  • fs: add File::options() (#​5869)
  • time: implement extra reset variants for Interval (#​5878)
  • process: add {ChildStd*}::into_owned_{fd, handle} (#​5899)
Removed
  • tokio: removed unused tokio_* cfgs (#​5890)
  • remove build script to speed up compilation (#​5887)
Documented
  • sync: mention lagging in docs for broadcast::send (#​5820)
  • runtime: expand on sharing runtime docs (#​5858)
  • io: use vec in example for AsyncReadExt::read_exact (#​5863)
  • time: mark Sleep as !Unpin in docs (#​5916)
  • process: fix raw_arg not showing up in docs (#​5865)
Unstable
  • rt: add runtime ID (#​5864)
  • rt: initial implementation of new threaded runtime (#​5823)

v1.29.1: Tokio v1.29.1

Compare Source

Fixed
  • rt: fix nesting two block_in_place with a block_on between (#​5837)

v1.29.0: Tokio v1.29.0

Compare Source

Technically a breaking change, the Send implementation is removed from
runtime::EnterGuard. This change fixes a bug and should not impact most users.

Breaking
  • rt: EnterGuard should not be Send (#​5766)
Fixed
  • fs: reduce blocking ops in fs::read_dir (#​5653)
  • rt: fix possible starvation (#​5686, #​5712)
  • rt: fix stacked borrows issue in JoinSet (#​5693)
  • rt: panic if EnterGuard dropped incorrect order (#​5772)
  • time: do not overflow to signal value (#​5710)
  • fs: wait for in-flight ops before cloning File (#​5803)
Changed
  • rt: reduce time to poll tasks scheduled from outside the runtime (#​5705, #​5720)
Added
  • net: add uds doc alias for unix sockets (#​5659)
  • rt: add metric for number of tasks (#​5628)
  • sync: implement more traits for channel errors (#​5666)
  • net: add nodelay methods on TcpSocket (#​5672)
  • sync: add broadcast::Receiver::blocking_recv (#​5690)
  • process: add raw_arg method to Command (#​5704)
  • io: support PRIORITY epoll events (#​5566)
  • task: add JoinSet::poll_join_next (#​5721)
  • net: add support for Redox OS (#​5790)
Unstable

v1.28.2: Tokio v1.28.2

Compare Source

1.28.2 (May 28, 2023)

Forward ports 1.18.6 changes.

Fixed
  • deps: disable default features for mio (#​5728)

v1.28.1: Tokio v1.28.1

Compare Source

1.28.1 (May 10th, 2023)

This release fixes a mistake in the build script that makes AsFd implementations unavailable on Rust 1.63. (#​5677)

v1.28.0: Tokio v1.28.0

Compare Source

1.28.0 (April 25th, 2023)

Added
  • io: add AsyncFd::async_io (#​5542)
  • io: impl BufMut for ReadBuf (#​5590)
  • net: add recv_buf for UdpSocket and UnixDatagram (#​5583)
  • sync: add OwnedSemaphorePermit::semaphore (#​5618)
  • sync: add same_channel to broadcast channel (#​5607)
  • sync: add watch::Receiver::wait_for (#​5611)
  • task: add JoinSet::spawn_blocking and JoinSet::spawn_blocking_on (#​5612)
Changed
  • deps: update windows-sys to 0.48 (#​5591)
  • io: make read_to_end not grow unnecessarily (#​5610)
  • macros: make entrypoints more efficient (#​5621)
  • sync: improve Debug impl for RwLock (#​5647)
  • sync: reduce contention in Notify (#​5503)
Fixed
  • net: support get_peer_cred on AIX (#​5065)
  • sync: avoid deadlocks in broadcast with custom wakers (#​5578)
Documented
  • sync: fix typo in Semaphore::MAX_PERMITS (#​5645)
  • sync: fix typo in tokio::sync::watch::Sender docs (#​5587)

v1.27.0: Tokio v1.27.0

Compare Source

1.27.0 (March 27th, 2023)

This release bumps the MSRV of Tokio to 1.56. (#​5559)

Added
  • io: add async_io helper method to sockets (#​5512)
  • io: add implementations of AsFd/AsHandle/AsSocket (#​5514, #​5540)
  • net: add UdpSocket::peek_sender() (#​5520)
  • sync: add RwLockWriteGuard::{downgrade_map, try_downgrade_map} (#​5527)
  • task: add JoinHandle::abort_handle (#​5543)
Changed
  • io: use memchr from libc (#​5558)
  • macros: accept path as crate rename in #[tokio::main] (#​5557)
  • macros: update to syn 2.0.0 (#​5572)
  • time: don't register for a wakeup when Interval returns Ready (#​5553)
Fixed
  • fs: fuse std iterator in ReadDir (#​5555)
  • tracing: fix spawn_blocking location fields (#​5573)
  • time: clean up redundant check in Wheel::poll() (#​5574)
Documented
  • macros: define cancellation safety (#​5525)
  • io: add details to docs of tokio::io::copy[_buf] (#​5575)
  • io: refer to ReaderStream and StreamReader in module docs (#​5576)

v1.26.0: Tokio v1.26.0

Compare Source

Fixed
Added
Changed
Internal Changes
Unstable
Documented

v1.25.3: Tokio v1.25.3

Compare Source

1.25.3 (December 17th, 2023)

Fixed
  • io: add budgeting to tokio::runtime::io::registration::async_io (#​6221)

v1.25.2: Tokio v1.25.2

Compare Source

1.25.2 (September 22, 2023)

Forward ports 1.20.6 changes.

Changed

v1.25.1: Tokio v1.25.1

Compare Source

1.25.1 (May 28, 2023)

Forward ports 1.18.6 changes.

Fixed
  • deps: disable default features for mio (#​5728)

v1.25.0: Tokio v1.25.0

1.25.0 (January 28, 2023)

Fixed
  • rt: fix runtime metrics reporting (#​5330)
Added
  • sync: add broadcast::Sender::len (#​5343)
Changed
  • fs: increase maximum read buffer size to 2MiB (#​5397)

v1.24.1: Tokio v1.24.1

Compare Source

This release fixes a compilation failure on targets without AtomicU64 when using rustc older than 1.63. (#​5356)

v1.24.0: Tokio v1.24.0

Compare Source

The highlight of this release is the reduction of lock contention for all I/O operations (#​5300). We have received reports of up to a 20% improvement in CPU utilization and increased throughput for real-world I/O heavy applications.

Fixed
  • rt: improve native AtomicU64 support detection (#​5284)
Added
  • rt: add configuration option for max number of I/O events polled from the OS
    per tick (#​5186)
  • rt: add an environment variable for configuring the default number of worker
    threads per runtime instance (#​4250)
Changed
  • sync: reduce MPSC channel stack usage (#​5294)
  • io: reduce lock contention in I/O operations (#​5300)
  • fs: speed up read_dir() by chunking operations (#​5309)
  • rt: use internal ThreadId implementation (#​5329)
  • test: don't auto-advance time when a spawn_blocking task is running (#​5115)

v1.23.1: Tokio v1.23.1

Compare Source

This release forward ports changes from 1.18.4.

Fixed
  • net: fix Windows named pipe server builder to maintain option when toggling
    pipe mode (#​5336).

v1.23.0: Tokio v1.23.0

Compare Source

Fixed
  • net: fix Windows named pipe connect (#​5208)
  • io: support vectored writes for ChildStdin (#​5216)
  • io: fix async fn ready() false positive for OS-specific events (#​5231)
Changed
  • runtime: yield_now defers task until after driver poll (#​5223)
  • runtime: reduce amount of codegen needed per spawned task (#​5213)
  • windows: replace winapi dependency with windows-sys (#​5204)

v1.22.0: Tokio v1.22.0

Compare Source

Added
  • runtime: add Handle::runtime_flavor (#​5138)
  • sync: add Mutex::blocking_lock_owned (#​5130)
  • sync: add Semaphore::MAX_PERMITS (#​5144)
  • sync: add merge() to semaphore permits (#​4948)
  • sync: add mpsc::WeakUnboundedSender (#​5189)
Added (unstable)
  • process: add Command::process_group (#​5114)
  • runtime: export metrics about the blocking thread pool (#​5161)
  • task: add task::id() and task::try_id() (#​5171)
Fixed
  • macros: don't take ownership of futures in macros (#​5087)
  • runtime: fix Stacked Borrows violation in LocalOwnedTasks (#​5099)
  • runtime: mitigate ABA with 32-bit queue indices when possible (#​5042)
  • task: wake local tasks to the local queue when woken by the same thread (#​5095)
  • time: panic in release mode when mark_pending called illegally (#​5093)
  • runtime: fix typo in expect message (#​5169)
  • runtime: fix unsync_load on atomic types (#​5175)
  • task: elaborate safety comments in task deallocation (#​5172)
  • runtime: fix LocalSet drop in thread local (#​5179)
  • net: remove libc type leakage in a public API (#​5191)
  • runtime: update the alignment of CachePadded (#​5106)
Changed
  • io: make tokio::io::copy continue filling the buffer when writer stalls (#​5066)
  • runtime: remove coop::budget from LocalSet::run_until (#​5155)
  • sync: make Notify panic safe (#​5154)
Documented
  • io: fix doc for write_i8 to use signed integers (#​5040)
  • net: fix doc typos for TCP and UDP set_tos methods (#​5073)
  • net: fix function name in UdpSocket::recv documentation (#​5150)
  • sync: typo in TryLockError for RwLock::try_write (#​5160)
  • task: document that spawned tasks execute immediately (#​5117)
  • time: document return type of timeout (#​5118)
  • time: document that timeout checks only before poll (#​5126)
  • sync: specify return type of oneshot::Receiver in docs (#​5198)
Internal changes
  • runtime: use const Mutex::new for globals (#​5061)
  • runtime: remove Option around mio::Events in io driver (#​5078)
  • runtime: remove a conditional compilation clause (#​5104)
  • runtime: remove a reference to internal time handle (#​5107)
  • runtime: misc time driver cleanup (#​5120)
  • runtime: move signal driver to runtime module (#​5121)
  • runtime: signal driver now uses I/O driver directly (#​5125)
  • runtime: start decoupling I/O driver and I/O handle (#​5127)
  • runtime: switch io::handle refs with scheduler:Handle (#​5128)
  • runtime: remove Arc from I/O driver (#​5134)
  • runtime: use signal driver handle via scheduler::Handle (#​5135)
  • runtime: move internal clock fns out of context (#​5139)
  • runtime: remove runtime::context module (#​5140)
  • runtime: keep driver cfgs in driver.rs (#​5141)
  • runtime: add runtime::context to unify thread-locals (#​5143)
  • runtime: rename some confusing internal variables/fns (#​5151)
  • runtime: move coop mod into runtime (#​5152)
  • runtime: move budget state to context thread-local (#​5157)
  • runtime: move park logic into runtime module (#​5158)
  • runtime: move Runtime into its own file (#​5159)
  • runtime: unify entering a runtime with Handle::enter (#​5163)
  • runtime: remove handle reference from each scheduler (#​5166)
  • runtime: move enter into context (#​5167)
  • runtime: combine context and entered thread-locals (#​5168)
  • runtime: fix accidental unsetting of current handle (#​5178)
  • runtime: move CoreStage methods to Core (#​5182)
  • sync: name mpsc semaphore types (#​5146)

v1.21.2: Tokio v1.21.2

Compare Source

1.21.2 (September 27, 2022)

This release removes the dependency on the once_cell crate to restore the MSRV of 1.21.x, which is the latest minor version at the time of release. (#​5048)

v1.21.1: Tokio v1.21.1

Compare Source

1.21.1 (September 13, 2022)

Fixed
  • net: fix dependency resolution for socket2 (#​5000)
  • task: ignore failure to set TLS in LocalSet Drop (#​4976)

v1.21.0: Tokio v1.21.0

Compare Source

1.21.0 (September 2, 2022)

This release is the first release of Tokio to intentionally support WASM. The sync,macros,io-util,rt,time features are stabilized on WASM. Additionally the wasm32-wasi target is given unstable support for the net feature.

Added
  • net: add device and bind_device methods to TCP/UDP sockets (#​4882)
  • net: add tos and set_tos methods to TCP and UDP sockets (#​4877)
  • net: add security flags to named pipe ServerOptions (#​4845)
  • signal: add more windows signal handlers (#​4924)
  • sync: add mpsc::Sender::max_capacity method (#​4904)
  • sync: implement Weak version of mpsc::Sender (#​4595)
  • task: add LocalSet::enter (#​4765)
  • task: stabilize JoinSet and AbortHandle (#​4920)
  • tokio: add track_caller to public APIs (#​4805, #​4848, #​4852)
  • wasm: initial support for wasm32-wasi target (#​4716)
Fixed
  • miri: improve miri compatibility by avoiding temporary references in linked_list::Link impls (#​4841)
  • signal: don't register write interest on signal pipe (#​4898)
  • sync: add #[must_use] to lock guards (#​4886)
  • sync: fix hang when calling recv on closed and reopened broadcast channel (#​4867)
  • task: propagate attributes on task-locals (#​4837)
Changed
  • fs: change panic to error in File::start_seek (#​4897)
  • io: reduce syscalls in poll_read (#​4840)
  • process: use blocking threadpool for child stdio I/O (#​4824)
  • signal: make SignalKind methods const (#​4956)
Internal changes
  • rt: extract basic_scheduler::Config (#​4935)
  • rt: move I/O driver into runtime module (#​4942)
  • rt: rename internal scheduler types (#​4945)
Documented
  • chore: fix typos and grammar (#​4858, #​4894, #​4928)
  • io: fix typo in AsyncSeekExt::rewind docs (#​4893)
  • net: add documentation to try_read() for zero-length buffers (#​4937)
  • runtime: remove incorrect panic section for Builder::worker_threads (#​4849)
  • sync: doc of watch::Sender::send improved (#​4959)
  • task: add cancel safety docs to JoinHandle (#​4901)
  • task: expand on cancellation of spawn_blocking (#​4811)
  • time: clarify that the first tick of Interval::tick happens immediately (#​4951)
Unstable
  • rt: add unstable option to disable the LIFO slot (#​4936)
  • task: fix incorrect signature in Builder::spawn_on (#​4953)
  • task: make task::Builder::spawn* methods fallible (#​4823)

v1.20.6: Tokio v1.20.6

Compare Source

1.20.6 (September 22, 2023)

This is a backport of a change from 1.27.0.

Changed

v1.20.5: Tokio v1.20.5

Compare Source

1.20.5 (May 28, 2023)

Forward ports 1.18.6 changes.

Fixed
  • deps: disable default features for mio (#​5728)

v1.20.4

Compare Source

v1.20.3

Compare Source

v1.20.2: Tokio v1.20.2

Compare Source

1.20.2 (September 27, 2022)

This release removes the dependency on the once_cell crate to restore the MSRV of the 1.20.x LTS release. (#​5048)

v1.20.1: Tokio v1.20.1

Compare Source

1.20.1 (July 25, 2022)

Fixed
  • chore: fix version detection in build script (#​4860)

v1.20.0: Tokio v1.20.0

Compare Source

1.20.0 (July 12, 2022)

Added
Changed
  • time: remove src/time/driver/wheel/stack.rs (#​4766)
  • rt: clean up arguments passed to basic scheduler (#​4767)
  • net: be more specific about winapi features (#​4764)
  • tokio: use const initialized thread locals where possible (#​4677)
  • task: various small improvements to LocalKey (#​4795)
Fixed
Documented
  • fs: warn about performance pitfall (#​4762)
  • chore: fix spelling (#​4769)
  • sync: document spurious failures in oneshot (#​4777)
  • sync: add warning for watch in non-Send futures (#​4741)
  • chore: fix typo (#​4798)
Unstable
  • joinset: rename join_one to join_next (#​4755)
  • rt: unhandled panic config for current thread rt (#​4770)

v1.19.2: Tokio v1.19.2

Compare Source

1.19.2 (June 6, 2022)

This release fixes another bug in Notified::enable. (#​4751)

v1.19.1: Tokio v1.19.1

Compare Source

1.19.1 (June 5, 2022)

This release fixes a bug in Notified::enable. (#​4747)

v1.19.0: Tokio v1.19.0

Compare Source

1.19.0 (June 3, 2022)

Added
  • runtime: add is_finished method for JoinHandle and AbortHandle (#​4709)
  • runtime: make global queue and event polling intervals configurable (#​4671)
  • sync: add Notified::enable (#​4705)
  • sync: add watch::Sender::send_if_modified (#​4591)
  • sync: add resubscribe method to broadcast::Receiver (#​4607)
  • net: add take_error to TcpSocket and TcpStream (#​4739)
Changed
  • io: refactor out usage of Weak in the io handle (#​4656)
Fixed
  • macros: avoid starvation in join! and try_join! (#​4624)
Documented
  • runtime: clarify semantics of tasks outliving block_on (#​4729)
  • time: fix example for MissedTickBehavior::Burst (#​4713)
Unstable
  • metrics: correctly update atomics in IoDriverMetrics (#​4725)
  • metrics: fix compilation with unstable, process, and rt, but without net (#​4682)
  • task: add #[track_caller] to JoinSet/JoinMap (#​4697)
  • task: add Builder::{spawn_on, spawn_local_on, spawn_blocking_on} (#​4683)
  • task: add consume_budget for cooperative scheduling (#​4498)
  • task: add join_set::Builder for configuring JoinSet tasks (#​4687)
  • task: update return value of JoinSet::join_one (#​4726)

v1.18.6: Tokio v1.18.6

Compare Source

1.18.6 (May 28, 2023)

Fixed
  • deps: disable default features for mio (#​5728)

v1.18.5

Compare Source

v1.18.4

Compare Source

v1.18.3: Tokio v1.18.3

Compare Source

1.18.3 (September 27, 2022)

This release removes the dependency on the once_cell crate to restore the MSRV of the 1.18.x LTS release. (#​5048)

v1.18.2: Tokio v1.18.2

Compare Source

1.18.2 (May 5, 2022)

Add missing features for the winapi dependency. (#​4663)

v1.18.1: Tokio v1.18.1

Compare Source

1.18.1 (May 2, 2022)

The 1.18.0 release broke the build for targets without 64-bit atomics when building with tokio_unstable. This release fixes that. (#​4649)

v1.18.0: Tokio v1.18.0

Compare Source

1.18.0 (April 27, 2022)

This release adds a number of new APIs in tokio::net, tokio::signal, and
tokio::sync. In addition, it adds new unstable APIs to tokio::task (Ids
for uniquely identifying a task, and AbortHandle for remotely cancelling a
task), as well as a number of bugfixes.

Fixed
  • blocking: add missing #[track_caller] for spawn_blocking (#​4616)
  • macros: fix select macro to process 64 branches (#​4519)
  • net: fix try_io methods not calling Mio's try_io internally (#​4582)
  • runtime: recover when OS fails to spawn a new thread (#​4485)
Added
  • net: add UdpSocket::peer_addr (#​4611)
  • net: add try_read_buf method for named pipes (#​4626)
  • signal: add SignalKind Hash/Eq impls and c_int conversion (#​4540)
  • signal: add support for signals up to SIGRTMAX (#​4555)
  • sync: add watch::Sender::send_modify method (#​4310)
  • sync: add broadcast::Receiver::len method (#​4542)
  • sync: add watch::Receiver::same_channel method (#​4581)
  • sync: implement Clone for RecvError types (#​4560)
Changed
  • update mio to 0.8.1 (#​4582)
  • macros: rename tokio::select!'s internal util module (#​4543)
  • runtime: use Vec::with_capacity when building runtime (#​4553)
Documented
  • improve docs for tokio_unstable (#​4524)
  • runtime: include more documentation for thread_pool/worker (#​4511)
  • runtime: update Handle::current's docs to mention EnterGuard (#​4567)
  • time: clarify platform specific timer resolution (#​4474)
  • signal: document that Signal::recv is cancel-safe (#​4634)
  • sync: UnboundedReceiver close docs (#​4548)
Unstable

The following changes only apply when building with --cfg tokio_unstable:

  • task: add task::Id type (#​4630)
  • task: add AbortHandle type for cancelling tasks in a JoinSet (#​4530],
    [#​4640)
  • task: fix missing doc(cfg(...)) attributes for JoinSet (#​4531)
  • task: fix broken link in AbortHandle RustDoc (#​4545)
  • metrics: add initial IO driver metrics (#​4507)

v1.17.0: Tokio v1.17.0

Compare Source

1.17.0 (February 15, 2022)

This release updates the minimum supported Rust version (MSRV) to 1.49,
the mio dependency to v0.8, and the (optional) parking_lot
dependency to v0.12. Additionally, it contains several bug fixes, as
well as internal refactoring and performance improvements.

Fixed
  • time: prevent panicking in sleep with large durations (#​4495)
  • time: eliminate potential panics in Instant arithmetic on platforms
    where Instant::now is not monotonic (#​4461)
  • io: fix DuplexStream not participating in cooperative yielding
    (#​4478)
  • rt: fix potential double panic when dropping a JoinHandle (#​4430)
Changed
  • update minimum supported Rust version to 1.49 (#​4457)
  • update parking_lot dependency to v0.12.0 (#​4459)
  • update mio dependency to v0.8 (#​4449)
  • rt: remove an unnecessary lock in the blocking pool (#​4436)
  • rt: remove an unnecessary enum in the basic scheduler (#​4462)
  • time: use bit manipulation instead of modulo to improve performance
    (#​4480)
  • net: use std::future::Ready instead of our own Ready future
    (#​4271)
  • replace deprecated atomic::spin_loop_hint with hint::spin_loop
    (#​4491)
  • fix miri failures in intrusive linked lists (#​4397)
Documented
  • io: add an example for tokio::process::ChildStdin (#​4479)
Unstable

The following changes only apply when building with --cfg tokio_unstable:

  • task: fix missing location information in tracing spans generated by
    spawn_local (#​4483)
  • task: add JoinSet for managing sets of tasks (#​4335)
  • metrics: fix compilation error on MIPS (#​4475)
  • metrics: fix compilation error on arm32v7 (#​4453)

v1.16.1: Tokio v1.16.1

Compare Source

1.16.1 (January 28, 2022)

This release fixes a bug in #​4428 with the change #​4437.

v1.16.0: Tokio v1.16.0

Compare Source

Fixes a soundness bug in io::Take (#​4428). The unsoundness is exposed when
leaking memory in the given AsyncRead implementation and then overwriting the
supplied buffer:

impl AsyncRead for Buggy {
    fn poll_read(
        self: Pin<&mut Self>,
        cx: &mut Context<'_>,
        buf: &mut ReadBuf<'_>
    ) -> Poll<Result<()>> {
      let new_buf = vec![0; 5].leak();
      *buf = ReadBuf::new(new_buf);
      buf.put_slice(b"hello");
      Poll::Ready(Ok(()))
    }
}

Also, this release includes improvements to the multi-threaded scheduler that
can increase throughput by up to 20% in some cases (#​4383).

Fixed
  • io: soundness don't expose uninitialized memory when using io::Take in edge case (#​4428)
  • fs: ensure File::write results in a write syscall when the runtime shuts down (#​4316)
  • process: drop pipe after child exits in wait_with_output (#​4315)
  • rt: improve error message when spawning a thread fails (#​4398)
  • rt: reduce false-positive thread wakups in the multi-threaded scheduler (#​4383)
  • sync: don't inherit Send from parking_lot::*Guard (#​4359)
Added
  • net: TcpSocket::linger() and set_linger() (#​4324)
  • net: impl UnwindSafe for socket types (#​4384)
  • rt: impl UnwindSafe for JoinHandle (#​4418)
  • sync: watch::Receiver::has_changed() (#​4342)
  • sync: oneshot::Receiver::blocking_recv() (#​4334)
  • sync: RwLock blocking operations (#​4425)
Unstable

The following changes only apply when building with --cfg tokio_unstable

  • rt: breaking change overhaul runtime metrics API (#​4373)

v1.15.0: Tokio v1.15.0

Compare Source

Fixed
  • io: add cooperative yielding support to io::empty() (#​4300)
  • time: make timeout robust against budget-depleting tasks (#​4314)
Changed
  • update minimum supported Rust version to 1.46.
Added
  • time: add Interval::reset() (#​4248)
  • io: add explicit lifetimes to AsyncFdReadyGuard (#​4267)
  • process: add Command::as_std() (#​4295)
Added (unstable)
  • tracing: instrument tokio::sync types (#​4302)

v1.14.1: Tokio v1.14.1

Compare Source

This release backports a bug fix from 1.16.1

Fixes a soundness bug in io::Take (#​4428). The unsoundness is exposed when
leaking memory in the given AsyncRead implementation and then overwriting the
supplied buffer:

impl AsyncRead for Buggy {
    fn poll_read(
        self: Pin<&mut Self>,
        cx: &mut Context<'_>,
        buf: &mut ReadBuf<'_>
    ) -> Poll<Result<()>> {
      let new_buf = vec![0; 5].leak();
      *buf = ReadBuf::new(new_buf);
      buf.put_slice(b"hello");
      Poll::Ready(Ok(()))
    }
}
Fixed
  • io: soundness don't expose uninitialized memory when using io::Take in edge case (#​4428)

v1.14.0: Tokio v1.14.0

Compare Source

1.14.0 (November 15, 2021)

Fixed
  • macros: fix compiler errors when using mut patterns in select! (#​4211)
  • sync: fix a data race between oneshot::Sender::send and awaiting a
    oneshot::Receiver when the oneshot has been closed (#​4226)
  • sync: make AtomicWaker panic safe (#​3689)
  • runtime: fix basic scheduler dropping tasks outside a runtime context
    (#​4213)
Added
Changed
  • io: updated copy buffer size to match std::io::copy (#​4209)
Documented
  • io: rename buffer to file in doc-test (#​4230)
  • sync: fix Notify example (#​4212)

v1.13.1: Tokio v1.13.1

Compare Source

1.13.1 (November 15, 2021)

This release fixes a data race when sending and receiving on a
closed oneshot channel (RUSTSEC-2021-0124).

Fixed
  • sync: fix a data race between oneshot::Sender::send and awaiting a
    oneshot::Receiver when the oneshot has been closed (#​4226)

v1.13.0: Tokio v1.13.0

Compare Source

1.13.0 (October 29, 2021)

Fixed
  • sync: fix Notify to clone the waker before locking its waiter list (#​4129)
  • tokio: add riscv32 to non atomic64 architectures (#​4185)
Added
  • net: add poll_{recv,send}_ready methods to udp and uds_datagram (#​4131)
  • net: add try_*, readable, writable, ready, and peer_addr methods to split halves (#​4120)
  • sync: add blocking_lock to Mutex (#​4130)
  • sync: add watch::Sender::send_replace (#​3962, #​4195)
  • sync: expand Debug for Mutex<T> impl to unsized T (#​4134)
  • tracing: instrument time::Sleep (#​4072)
  • tracing: use structured location fields for spawned tasks (#​4128)
Changed
  • io: add assert in copy_bidirectional that poll_write is sensible (#​4125)
  • macros: use qualified syntax when polling in select! (#​4192)
  • runtime: handle block_on wakeups better (#​4157)
  • task: allocate callback on heap immediately in debug mode (#​4203)
  • tokio: assert platform-minimum requirements at build time (#​3797)
Documented
  • docs: conversion of doc comments to indicative mood (#​4174)
  • docs: add returning on the first error example for try_join! (#​4133)
  • docs: fixing broken links in tokio/src/lib.rs (#​4132)
  • signal: add example with background listener (#​4171)
  • sync: add more oneshot examples (#​4153)
  • time: document Interval::tick cancel safety (#​4152)

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [clap](https://github.com/clap-rs/clap) | dependencies | minor | `2.33.3` -> `2.34.0` | | [log](https://github.com/rust-lang/log) | dependencies | patch | `0.4.14` -> `0.4.28` | | [pnet_packet](https://github.com/libpnet/libpnet) | dependencies | minor | `0.28.0` -> `0.35.0` | | [simplelog](https://github.com/drakulix/simplelog.rs) | dependencies | minor | `0.10.2` -> `0.12.0` | | [systemd](https://github.com/codyps/rust-systemd) | dependencies | minor | `0.9.0` -> `0.10.0` | | [tokio](https://tokio.rs) ([source](https://github.com/tokio-rs/tokio)) | dependencies | minor | `1.12.0` -> `1.48.0` | --- ### Release Notes <details> <summary>clap-rs/clap (clap)</summary> ### [`v2.34.0`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#2340---2021-11-30) [Compare Source](https://github.com/clap-rs/clap/compare/v2.33.4...v2.34.0) - Updates to Rust 2018 edition and bumps the MSRV to Rust 1.46 ### [`v2.33.4`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#2334---2021-11-29) [Compare Source](https://github.com/clap-rs/clap/compare/v2.33.3...v2.33.4) ##### Bug Fixes - **prevents `panic`:** swallows broken pipe errors on error output ([7a729bc4](https://github.com/kbknapp/clap-rs/commit/7a729bc4df2646b05f6bf15f001124cd39d076ce)) </details> <details> <summary>rust-lang/log (log)</summary> ### [`v0.4.28`](https://github.com/rust-lang/log/blob/HEAD/CHANGELOG.md#0428---2025-09-02) [Compare Source](https://github.com/rust-lang/log/compare/0.4.27...0.4.28) ### [`v0.4.27`](https://github.com/rust-lang/log/blob/HEAD/CHANGELOG.md#0427---2025-03-24) [Compare Source](https://github.com/rust-lang/log/compare/0.4.26...0.4.27) ##### What's Changed - A few minor lint fixes by [@&#8203;nyurik](https://github.com/nyurik) in [#&#8203;671](https://github.com/rust-lang/log/pull/671) - Enable clippy support for format-like macros by [@&#8203;nyurik](https://github.com/nyurik) in [#&#8203;665](https://github.com/rust-lang/log/pull/665) - Add an optional logger param by [@&#8203;tisonkun](https://github.com/tisonkun) in [#&#8203;664](https://github.com/rust-lang/log/pull/664) - Pass global logger by value, supplied logger by ref by [@&#8203;KodrAus](https://github.com/KodrAus) in [#&#8203;673](https://github.com/rust-lang/log/pull/673) **Full Changelog**: <https://github.com/rust-lang/log/compare/0.4.26...0.4.27> ### [`v0.4.26`](https://github.com/rust-lang/log/blob/HEAD/CHANGELOG.md#0427---2025-03-24) [Compare Source](https://github.com/rust-lang/log/compare/0.4.25...0.4.26) ##### What's Changed - A few minor lint fixes by [@&#8203;nyurik](https://github.com/nyurik) in [#&#8203;671](https://github.com/rust-lang/log/pull/671) - Enable clippy support for format-like macros by [@&#8203;nyurik](https://github.com/nyurik) in [#&#8203;665](https://github.com/rust-lang/log/pull/665) - Add an optional logger param by [@&#8203;tisonkun](https://github.com/tisonkun) in [#&#8203;664](https://github.com/rust-lang/log/pull/664) - Pass global logger by value, supplied logger by ref by [@&#8203;KodrAus](https://github.com/KodrAus) in [#&#8203;673](https://github.com/rust-lang/log/pull/673) **Full Changelog**: <https://github.com/rust-lang/log/compare/0.4.26...0.4.27> ### [`v0.4.25`](https://github.com/rust-lang/log/blob/HEAD/CHANGELOG.md#0426---2025-02-18) [Compare Source](https://github.com/rust-lang/log/compare/0.4.24...0.4.25) ##### What's Changed - Derive `Clone` for `kv::Value` by [@&#8203;SpriteOvO](https://github.com/SpriteOvO) in [#&#8203;668](https://github.com/rust-lang/log/pull/668) - Add `spdlog-rs` link to crate doc by [@&#8203;SpriteOvO](https://github.com/SpriteOvO) in [#&#8203;669](https://github.com/rust-lang/log/pull/669) **Full Changelog**: <https://github.com/rust-lang/log/compare/0.4.25...0.4.26> ### [`v0.4.24`](https://github.com/rust-lang/log/blob/HEAD/CHANGELOG.md#0425---2025-01-14) [Compare Source](https://github.com/rust-lang/log/compare/0.4.23...0.4.24) ##### What's Changed - Revert loosening of kv cargo features by [@&#8203;KodrAus](https://github.com/KodrAus) in [#&#8203;662](https://github.com/rust-lang/log/pull/662) **Full Changelog**: <https://github.com/rust-lang/log/compare/0.4.24...0.4.25> ### [`v0.4.23`](https://github.com/rust-lang/log/blob/HEAD/CHANGELOG.md#0424---2025-01-11) [Compare Source](https://github.com/rust-lang/log/compare/0.4.22...0.4.23) ##### What's Changed - Fix up kv feature activation by [@&#8203;KodrAus](https://github.com/KodrAus) in [#&#8203;659](https://github.com/rust-lang/log/pull/659) **Full Changelog**: <https://github.com/rust-lang/log/compare/0.4.23...0.4.24> ### [`v0.4.22`](https://github.com/rust-lang/log/blob/HEAD/CHANGELOG.md#0423---2025-01-10-yanked) [Compare Source](https://github.com/rust-lang/log/compare/0.4.21...0.4.22) ##### What's Changed - Fix some typos by [@&#8203;Kleinmarb](https://github.com/Kleinmarb) in [#&#8203;637](https://github.com/rust-lang/log/pull/637) - Add logforth to implementation by [@&#8203;tisonkun](https://github.com/tisonkun) in [#&#8203;638](https://github.com/rust-lang/log/pull/638) - Add `spdlog-rs` link to README by [@&#8203;SpriteOvO](https://github.com/SpriteOvO) in [#&#8203;639](https://github.com/rust-lang/log/pull/639) - Add correct lifetime to kv::Value::to\_borrowed\_str by [@&#8203;stevenroose](https://github.com/stevenroose) in [#&#8203;643](https://github.com/rust-lang/log/pull/643) - docs: Add logforth as an impl by [@&#8203;tisonkun](https://github.com/tisonkun) in [#&#8203;642](https://github.com/rust-lang/log/pull/642) - Add clang\_log implementation by [@&#8203;DDAN-17](https://github.com/DDAN-17) in [#&#8203;646](https://github.com/rust-lang/log/pull/646) - Bind lifetimes of \&str returned from Key by the lifetime of 'k rather than the lifetime of the Key struct by [@&#8203;gbbosak](https://github.com/gbbosak) in [#&#8203;648](https://github.com/rust-lang/log/pull/648) - Fix up key lifetimes and add method to try get a borrowed key by [@&#8203;KodrAus](https://github.com/KodrAus) in [#&#8203;653](https://github.com/rust-lang/log/pull/653) - Add Ftail implementation by [@&#8203;tjardoo](https://github.com/tjardoo) in [#&#8203;652](https://github.com/rust-lang/log/pull/652) ##### New Contributors - [@&#8203;Kleinmarb](https://github.com/Kleinmarb) made their first contribution in [#&#8203;637](https://github.com/rust-lang/log/pull/637) - [@&#8203;tisonkun](https://github.com/tisonkun) made their first contribution in [#&#8203;638](https://github.com/rust-lang/log/pull/638) - [@&#8203;SpriteOvO](https://github.com/SpriteOvO) made their first contribution in [#&#8203;639](https://github.com/rust-lang/log/pull/639) - [@&#8203;stevenroose](https://github.com/stevenroose) made their first contribution in [#&#8203;643](https://github.com/rust-lang/log/pull/643) - [@&#8203;DDAN-17](https://github.com/DDAN-17) made their first contribution in [#&#8203;646](https://github.com/rust-lang/log/pull/646) - [@&#8203;gbbosak](https://github.com/gbbosak) made their first contribution in [#&#8203;648](https://github.com/rust-lang/log/pull/648) - [@&#8203;tjardoo](https://github.com/tjardoo) made their first contribution in [#&#8203;652](https://github.com/rust-lang/log/pull/652) **Full Changelog**: <https://github.com/rust-lang/log/compare/0.4.22...0.4.23> ### [`v0.4.21`](https://github.com/rust-lang/log/blob/HEAD/CHANGELOG.md#0422---2024-06-27) [Compare Source](https://github.com/rust-lang/log/compare/0.4.20...0.4.21) ##### What's Changed - Add some clarifications to the library docs by [@&#8203;KodrAus](https://github.com/KodrAus) in [#&#8203;620](https://github.com/rust-lang/log/pull/620) - Add links to `colog` crate by [@&#8203;chrivers](https://github.com/chrivers) in [#&#8203;621](https://github.com/rust-lang/log/pull/621) - adding line\_number test + updating some testing infrastructure by [@&#8203;DIvkov575](https://github.com/DIvkov575) in [#&#8203;619](https://github.com/rust-lang/log/pull/619) - Clarify the actual set of functions that can race in \_racy variants by [@&#8203;KodrAus](https://github.com/KodrAus) in [#&#8203;623](https://github.com/rust-lang/log/pull/623) - Replace deprecated std::sync::atomic::spin\_loop\_hint() by [@&#8203;Catamantaloedis](https://github.com/Catamantaloedis) in [#&#8203;625](https://github.com/rust-lang/log/pull/625) - Check usage of max\_level features by [@&#8203;Thomasdezeeuw](https://github.com/Thomasdezeeuw) in [#&#8203;627](https://github.com/rust-lang/log/pull/627) - Remove unneeded import by [@&#8203;Thomasdezeeuw](https://github.com/Thomasdezeeuw) in [#&#8203;628](https://github.com/rust-lang/log/pull/628) - Loosen orderings for logger initialization in [#&#8203;632](https://github.com/rust-lang/log/pull/632). Originally by [@&#8203;pwoolcoc](https://github.com/pwoolcoc) in [#&#8203;599](https://github.com/rust-lang/log/pull/599) - Use Location::caller() for file and line info in [#&#8203;633](https://github.com/rust-lang/log/pull/633). Originally by [@&#8203;Cassy343](https://github.com/Cassy343) in [#&#8203;520](https://github.com/rust-lang/log/pull/520) ##### New Contributors - [@&#8203;chrivers](https://github.com/chrivers) made their first contribution in [#&#8203;621](https://github.com/rust-lang/log/pull/621) - [@&#8203;DIvkov575](https://github.com/DIvkov575) made their first contribution in [#&#8203;619](https://github.com/rust-lang/log/pull/619) - [@&#8203;Catamantaloedis](https://github.com/Catamantaloedis) made their first contribution in [#&#8203;625](https://github.com/rust-lang/log/pull/625) **Full Changelog**: <https://github.com/rust-lang/log/compare/0.4.21...0.4.22> ### [`v0.4.20`](https://github.com/rust-lang/log/blob/HEAD/CHANGELOG.md#0420---2023-07-11) [Compare Source](https://github.com/rust-lang/log/compare/0.4.19...0.4.20) - Remove rustversion dev-dependency by [@&#8203;Thomasdezeeuw](https://github.com/Thomasdezeeuw) in [#&#8203;568](https://github.com/rust-lang/log/pull/568) - Remove `local_inner_macros` usage by [@&#8203;EFanZh](https://github.com/EFanZh) in [#&#8203;570](https://github.com/rust-lang/log/pull/570) ### [`v0.4.19`](https://github.com/rust-lang/log/blob/HEAD/CHANGELOG.md#0419---2023-06-10) [Compare Source](https://github.com/rust-lang/log/compare/0.4.18...0.4.19) - Use target\_has\_atomic instead of the old atomic\_cas cfg by [@&#8203;GuillaumeGomez](https://github.com/GuillaumeGomez) in [#&#8203;555](https://github.com/rust-lang/log/pull/555) - Put MSRV into Cargo.toml by [@&#8203;est31](https://github.com/est31) in [#&#8203;557](https://github.com/rust-lang/log/pull/557) ### [`v0.4.18`](https://github.com/rust-lang/log/blob/HEAD/CHANGELOG.md#0418---2023-05-28) [Compare Source](https://github.com/rust-lang/log/compare/0.4.17...0.4.18) - fix Markdown links (again) by [@&#8203;hellow554](https://github.com/hellow554) in [#&#8203;513](https://github.com/rust-lang/log/pull/513) - add cargo doc to workflow by [@&#8203;hellow554](https://github.com/hellow554) in [#&#8203;515](https://github.com/rust-lang/log/pull/515) - Apply Clippy lints by [@&#8203;hellow554](https://github.com/hellow554) in [#&#8203;516](https://github.com/rust-lang/log/pull/516) - Replace ad-hoc eq\_ignore\_ascii\_case with slice::eq\_ignore\_ascii\_case by [@&#8203;glandium](https://github.com/glandium) in [#&#8203;519](https://github.com/rust-lang/log/pull/519) - fix up windows targets by [@&#8203;KodrAus](https://github.com/KodrAus) in [#&#8203;528](https://github.com/rust-lang/log/pull/528) - typo fix by [@&#8203;jiangying000](https://github.com/jiangying000) in [#&#8203;529](https://github.com/rust-lang/log/pull/529) - Remove dependency on cfg\_if by [@&#8203;EriKWDev](https://github.com/EriKWDev) in [#&#8203;536](https://github.com/rust-lang/log/pull/536) - GitHub Workflows security hardening by [@&#8203;sashashura](https://github.com/sashashura) in [#&#8203;538](https://github.com/rust-lang/log/pull/538) - Fix build status badge by [@&#8203;atouchet](https://github.com/atouchet) in [#&#8203;539](https://github.com/rust-lang/log/pull/539) - Add call\_logger to the documentation by [@&#8203;a1ecbr0wn](https://github.com/a1ecbr0wn) in [#&#8203;547](https://github.com/rust-lang/log/pull/547) - Use stable internals for key-value API by [@&#8203;KodrAus](https://github.com/KodrAus) in [#&#8203;550](https://github.com/rust-lang/log/pull/550) - Change wording of list of implementations by [@&#8203;Thomasdezeeuw](https://github.com/Thomasdezeeuw) in [#&#8203;553](https://github.com/rust-lang/log/pull/553) - Add std-logger to list of implementations by [@&#8203;Thomasdezeeuw](https://github.com/Thomasdezeeuw) in [#&#8203;554](https://github.com/rust-lang/log/pull/554) - Add `set_max_level_racy` and gate `set_max_level` by [@&#8203;djkoloski](https://github.com/djkoloski) in [#&#8203;544](https://github.com/rust-lang/log/pull/544) - \[doc] src/lib.rs : prefix an unused variable with an underscore by [@&#8203;OccupyMars2025](https://github.com/OccupyMars2025) in [#&#8203;561](https://github.com/rust-lang/log/pull/561) - \[doc] src/macros.rs : correct grammar errors of an example in lib documentation by [@&#8203;OccupyMars2025](https://github.com/OccupyMars2025) in [#&#8203;562](https://github.com/rust-lang/log/pull/562) ### [`v0.4.17`](https://github.com/rust-lang/log/blob/HEAD/CHANGELOG.md#0417---2022-04-29) - Update `kv_unstable` internal dependencies. ### [`v0.4.16`](https://github.com/rust-lang/log/blob/HEAD/CHANGELOG.md#0416---2022-03-22) - Fix a conflict with unqualified `Option` use in macros. ### [`v0.4.15`](https://github.com/rust-lang/log/blob/HEAD/CHANGELOG.md#0415---2022-02-23) [Compare Source](https://github.com/rust-lang/log/compare/0.4.14...0.4.15) - Silence a warning about the deprecated `spin_loop_hint`. - Relax ordering in the atomic `set_max_level` call. - Add thumbv4t-none-eabi to targets that don't support atomics - Allow levels to be iterated over. - Implement `Log` on some common wrapper types. - Improvements to test coverage. - Improvements to documentation. - Add key-value support to the `log!` macros. - Tighten `kv_unstable` internal dependencies, so they don't bump past their current alpha. - Add a simple visit API to `kv_unstable`. - Support `NonZero*` integers as values in structured logging - Support static strings as keys in structured logging </details> <details> <summary>libpnet/libpnet (pnet_packet)</summary> ### [`v0.35.0`](https://github.com/libpnet/libpnet/releases/tag/v0.35.0) [Compare Source](https://github.com/libpnet/libpnet/compare/v0.34.0...v0.35.0) #### What's Changed - Update license field following SPDX 2.1 license expression standard by [@&#8203;frisoft](https://github.com/frisoft) in [#&#8203;633](https://github.com/libpnet/libpnet/pull/633) - transport: Add option to set ECN on the TransportSender socket. by [@&#8203;hawkinsw](https://github.com/hawkinsw) in [#&#8203;685](https://github.com/libpnet/libpnet/pull/685) - Fix failing tests by [@&#8203;Paul-weqe](https://github.com/Paul-weqe) in [#&#8203;676](https://github.com/libpnet/libpnet/pull/676) - remove the repetitive word by [@&#8203;cuishuang](https://github.com/cuishuang) in [#&#8203;672](https://github.com/libpnet/libpnet/pull/672) - Add apple tvos support by [@&#8203;lcruz99](https://github.com/lcruz99) in [#&#8203;652](https://github.com/libpnet/libpnet/pull/652) - Adding vxlan to pnet\_packet by [@&#8203;stevedoyle](https://github.com/stevedoyle) in [#&#8203;654](https://github.com/libpnet/libpnet/pull/654) - Add ICMP Destination unreachable Next-hop MTU by [@&#8203;fabi321](https://github.com/fabi321) in [#&#8203;662](https://github.com/libpnet/libpnet/pull/662) - Update ARP example to also support IPv6 via NDP by [@&#8203;tgross35](https://github.com/tgross35) in [#&#8203;642](https://github.com/libpnet/libpnet/pull/642) - Ensure BPF read is 4-byte aligned by [@&#8203;frankplow](https://github.com/frankplow) in [#&#8203;655](https://github.com/libpnet/libpnet/pull/655) - Expose the various values in the TcpOption structure for external program access by [@&#8203;rikonaka](https://github.com/rikonaka) in [#&#8203;640](https://github.com/libpnet/libpnet/pull/640) - Definition for ethernet flow control packets. by [@&#8203;AJMansfield](https://github.com/AJMansfield) in [#&#8203;649](https://github.com/libpnet/libpnet/pull/649) - Expose set\_ecn on unix only by [@&#8203;mrmonday](https://github.com/mrmonday) in [#&#8203;689](https://github.com/libpnet/libpnet/pull/689) - datalink(linux): add feature to pass the fd (socket) to ::channel() by [@&#8203;Martichou](https://github.com/Martichou) in [#&#8203;584](https://github.com/libpnet/libpnet/pull/584) - Added DNS protocol support by [@&#8203;tomDev5](https://github.com/tomDev5) in [#&#8203;678](https://github.com/libpnet/libpnet/pull/678) - linux: use poll api instead of select inorder to support fd > 1024. Fixes [#&#8203;612](https://github.com/libpnet/libpnet/issues/612) and [#&#8203;639](https://github.com/libpnet/libpnet/issues/639) by [@&#8203;nemosupremo](https://github.com/nemosupremo) in [#&#8203;681](https://github.com/libpnet/libpnet/pull/681) #### New Contributors - [@&#8203;frisoft](https://github.com/frisoft) made their first contribution in [#&#8203;633](https://github.com/libpnet/libpnet/pull/633) - [@&#8203;hawkinsw](https://github.com/hawkinsw) made their first contribution in [#&#8203;685](https://github.com/libpnet/libpnet/pull/685) - [@&#8203;Paul-weqe](https://github.com/Paul-weqe) made their first contribution in [#&#8203;676](https://github.com/libpnet/libpnet/pull/676) - [@&#8203;cuishuang](https://github.com/cuishuang) made their first contribution in [#&#8203;672](https://github.com/libpnet/libpnet/pull/672) - [@&#8203;lcruz99](https://github.com/lcruz99) made their first contribution in [#&#8203;652](https://github.com/libpnet/libpnet/pull/652) - [@&#8203;stevedoyle](https://github.com/stevedoyle) made their first contribution in [#&#8203;654](https://github.com/libpnet/libpnet/pull/654) - [@&#8203;fabi321](https://github.com/fabi321) made their first contribution in [#&#8203;662](https://github.com/libpnet/libpnet/pull/662) - [@&#8203;tgross35](https://github.com/tgross35) made their first contribution in [#&#8203;642](https://github.com/libpnet/libpnet/pull/642) - [@&#8203;frankplow](https://github.com/frankplow) made their first contribution in [#&#8203;655](https://github.com/libpnet/libpnet/pull/655) - [@&#8203;AJMansfield](https://github.com/AJMansfield) made their first contribution in [#&#8203;649](https://github.com/libpnet/libpnet/pull/649) - [@&#8203;tomDev5](https://github.com/tomDev5) made their first contribution in [#&#8203;678](https://github.com/libpnet/libpnet/pull/678) - [@&#8203;nemosupremo](https://github.com/nemosupremo) made their first contribution in [#&#8203;681](https://github.com/libpnet/libpnet/pull/681) **Full Changelog**: <https://github.com/libpnet/libpnet/compare/v0.34.0...v0.35.0> ### [`v0.34.0`](https://github.com/libpnet/libpnet/releases/tag/v0.34.0) [Compare Source](https://github.com/libpnet/libpnet/compare/v0.33.0...v0.34.0) #### What's Changed - Add blanket impls of Packet for Box<T> and \&T. by [@&#8203;landhb](https://github.com/landhb) in [#&#8203;606](https://github.com/libpnet/libpnet/pull/606) - GitHub actions updates by [@&#8203;mrmonday](https://github.com/mrmonday) in [#&#8203;608](https://github.com/libpnet/libpnet/pull/608) - Fix typos by [@&#8203;darxriggs](https://github.com/darxriggs) in [#&#8203;609](https://github.com/libpnet/libpnet/pull/609) - Update pnet\_macros to use syn v2 by [@&#8203;james-jra](https://github.com/james-jra) in [#&#8203;627](https://github.com/libpnet/libpnet/pull/627) - Spell check with `typos`. Add `spell-check` CI job by [@&#8203;vvv](https://github.com/vvv) in [#&#8203;621](https://github.com/libpnet/libpnet/pull/621) - Add LINKTYPE\_LINUX\_SLL2 support and fix link to SLL by [@&#8203;reticulis](https://github.com/reticulis) in [#&#8203;619](https://github.com/libpnet/libpnet/pull/619) - TCP header remove NS flag by [@&#8203;rikonaka](https://github.com/rikonaka) in [#&#8203;625](https://github.com/libpnet/libpnet/pull/625) - Assorted cleanup by [@&#8203;mrmonday](https://github.com/mrmonday) in [#&#8203;630](https://github.com/libpnet/libpnet/pull/630) #### New Contributors - [@&#8203;james-jra](https://github.com/james-jra) made their first contribution in [#&#8203;627](https://github.com/libpnet/libpnet/pull/627) - [@&#8203;vvv](https://github.com/vvv) made their first contribution in [#&#8203;621](https://github.com/libpnet/libpnet/pull/621) - [@&#8203;reticulis](https://github.com/reticulis) made their first contribution in [#&#8203;619](https://github.com/libpnet/libpnet/pull/619) - [@&#8203;rikonaka](https://github.com/rikonaka) made their first contribution in [#&#8203;625](https://github.com/libpnet/libpnet/pull/625) **Full Changelog**: <https://github.com/libpnet/libpnet/compare/v0.33.0...v0.34.0> ### [`v0.33.0`](https://github.com/libpnet/libpnet/releases/tag/v0.33.0) [Compare Source](https://github.com/libpnet/libpnet/compare/v0.32.0...v0.33.0) #### What's Changed - Apply dependabot on all subfolders by [@&#8203;matteyeux](https://github.com/matteyeux) in [#&#8203;578](https://github.com/libpnet/libpnet/pull/578) - packet: add DHCP support by [@&#8203;Martichou](https://github.com/Martichou) in [#&#8203;581](https://github.com/libpnet/libpnet/pull/581) - Fix examples/arp\_packet.rs by [@&#8203;palindrom615](https://github.com/palindrom615) in [#&#8203;586](https://github.com/libpnet/libpnet/pull/586) - Add blanket impls of Packet for Box<T> and \&T. by [@&#8203;landhb](https://github.com/landhb) in [#&#8203;599](https://github.com/libpnet/libpnet/pull/599) - Revert "Add blanket impls of Packet for Box<T> and \&T." by [@&#8203;mrmonday](https://github.com/mrmonday) in [#&#8203;605](https://github.com/libpnet/libpnet/pull/605) - Upgrade dependencies - Remove `pnet` dev dependency from `pnet_datalink` - Fix `cargo doc` warning for `pnet_macros` #### New Contributors - [@&#8203;Martichou](https://github.com/Martichou) made their first contribution in [#&#8203;581](https://github.com/libpnet/libpnet/pull/581) - [@&#8203;palindrom615](https://github.com/palindrom615) made their first contribution in [#&#8203;586](https://github.com/libpnet/libpnet/pull/586) - [@&#8203;landhb](https://github.com/landhb) made their first contribution in [#&#8203;599](https://github.com/libpnet/libpnet/pull/599) **Full Changelog**: <https://github.com/libpnet/libpnet/compare/v0.32.0...v0.33.0> ### [`v0.32.0`](https://github.com/libpnet/libpnet/releases/tag/v0.32.0) [Compare Source](https://github.com/libpnet/libpnet/compare/v0.31.0...v0.32.0) #### What's Changed - pnet\_macros: Fix handle\_vec\_primitive for multi byte primitives by [@&#8203;jefftt](https://github.com/jefftt) in [#&#8203;596](https://github.com/libpnet/libpnet/pull/596) - Add missing `#[repr(C)]` attributes to structs - Enable the `std` feature by default use `--no-default-features` for `nostd` support #### New Contributors - [@&#8203;jefftt](https://github.com/jefftt) made their first contribution in [#&#8203;596](https://github.com/libpnet/libpnet/pull/596) **Full Changelog**: <https://github.com/libpnet/libpnet/compare/v0.31.0...v0.32.0> ### [`v0.31.0`](https://github.com/libpnet/libpnet/releases/tag/v0.31.0) [Compare Source](https://github.com/libpnet/libpnet/compare/v0.30.0...v0.31.0) #### What's Changed - Update libc dependency to 0.2.117 by [@&#8203;cc-morning](https://github.com/cc-morning) in [#&#8203;568](https://github.com/libpnet/libpnet/pull/568) - Fix feature deps in top-level Cargo.toml blocking #\[no\_std] use by [@&#8203;Felix-El](https://github.com/Felix-El) in [#&#8203;566](https://github.com/libpnet/libpnet/pull/566) - bump version for ipnetwork in pnet\_datalink by [@&#8203;matteyeux](https://github.com/matteyeux) in [#&#8203;567](https://github.com/libpnet/libpnet/pull/567) - Upgrade dependencies by [@&#8203;mrmonday](https://github.com/mrmonday) in [#&#8203;570](https://github.com/libpnet/libpnet/pull/570) - Fix some build warnings on Windows by [@&#8203;mrmonday](https://github.com/mrmonday) [`c9bb42f`](https://github.com/libpnet/libpnet/commit/c9bb42fe0c8ffeb0522e6f7801daf19e246eca2e) #### New Contributors - [@&#8203;cc-morning](https://github.com/cc-morning) made their first contribution in [#&#8203;568](https://github.com/libpnet/libpnet/pull/568) - [@&#8203;matteyeux](https://github.com/matteyeux) made their first contribution in [#&#8203;567](https://github.com/libpnet/libpnet/pull/567) **Full Changelog**: <https://github.com/libpnet/libpnet/compare/v0.30.0...v0.31.0> ### [`v0.30.0`](https://github.com/libpnet/libpnet/releases/tag/v0.30.0) [Compare Source](https://github.com/libpnet/libpnet/compare/v0.29.0...v0.30.0) #### What's Changed - pnet\_macros: fix num\_bytes calculation by [@&#8203;yu-re-ka](https://github.com/yu-re-ka) in [#&#8203;547](https://github.com/libpnet/libpnet/pull/547) - Assorted cleanup by [@&#8203;mrmonday](https://github.com/mrmonday) in [#&#8203;548](https://github.com/libpnet/libpnet/pull/548) - support Vec with construct\_with by [@&#8203;yu-re-ka](https://github.com/yu-re-ka) in [#&#8203;550](https://github.com/libpnet/libpnet/pull/550) - Misc fixes by [@&#8203;mrmonday](https://github.com/mrmonday) in [#&#8203;551](https://github.com/libpnet/libpnet/pull/551) - Update ipnetwork requirement from 0.18.0 to 0.19.0 by [@&#8203;dependabot](https://github.com/dependabot) in [#&#8203;552](https://github.com/libpnet/libpnet/pull/552) - Fix build on architectures with unsigned char by [@&#8203;pkubaj](https://github.com/pkubaj) in [#&#8203;561](https://github.com/libpnet/libpnet/pull/561) - Changes to Functions to include inline and moved benches to criterion to use stable toolchain by [@&#8203;infosechoudini](https://github.com/infosechoudini) in [#&#8203;555](https://github.com/libpnet/libpnet/pull/555) - Add illumos support by [@&#8203;teutat3s](https://github.com/teutat3s) in [#&#8203;549](https://github.com/libpnet/libpnet/pull/549) - enable #\[no\_std] use by providing std feature by [@&#8203;Felix-El](https://github.com/Felix-El) in [#&#8203;562](https://github.com/libpnet/libpnet/pull/562) #### New Contributors - [@&#8203;pkubaj](https://github.com/pkubaj) made their first contribution in [#&#8203;561](https://github.com/libpnet/libpnet/pull/561) - [@&#8203;infosechoudini](https://github.com/infosechoudini) made their first contribution in [#&#8203;555](https://github.com/libpnet/libpnet/pull/555) - [@&#8203;teutat3s](https://github.com/teutat3s) made their first contribution in [#&#8203;549](https://github.com/libpnet/libpnet/pull/549) - [@&#8203;Felix-El](https://github.com/Felix-El) made their first contribution in [#&#8203;562](https://github.com/libpnet/libpnet/pull/562) **Full Changelog**: <https://github.com/libpnet/libpnet/compare/v0.29.0...v0.30.0> ### [`v0.29.0`](https://github.com/libpnet/libpnet/releases/tag/v0.29.0) [Compare Source](https://github.com/libpnet/libpnet/compare/v0.28.0...v0.29.0) - Update Rust edition to 2021 - Update time dev-dependency - Remove deprecated `interface.mac_address()`, use `interface.mac` instead - Make `pnet_datalink::Channel` be `#[non_exhaustive]` - Support more interface flags - Fix issue preventing filling the datalink write buffer on Linux - Clean up/better document some unsafety - Add icmpv6 echo request and reply packet types - Add Linux SLL packet type - Various code clean-ups </details> <details> <summary>drakulix/simplelog.rs (simplelog)</summary> ### [`v0.12.2`](https://github.com/drakulix/simplelog.rs/compare/v0.12.1...v0.12.2) [Compare Source](https://github.com/drakulix/simplelog.rs/compare/v0.12.1...v0.12.2) ### [`v0.12.1`](https://github.com/drakulix/simplelog.rs/compare/v0.12.0...v0.12.1) [Compare Source](https://github.com/drakulix/simplelog.rs/compare/v0.12.0...v0.12.1) ### [`v0.12.0`](https://github.com/drakulix/simplelog.rs/blob/HEAD/CHANGELOG.md#v0120) [Compare Source](https://github.com/drakulix/simplelog.rs/compare/v0.11.2...v0.12.0) - Replaces the semingly unmaintained chrono library with the time crate. - Addresses through this update - RUSTSEC-2020-0159 (chrono) - RUSTSEC-2020-0071 (time) - `ConfigBuilder::set_time_to_local` is replaced by `ConfigBuilder::set_time_offset_to_local`. - This function requires the new (and by default activated) `local-offset` feature. - This function may fail, for more information read the docs. - simplelog will not determine the local offset dynamically anymore, but only once, when this config option is set. - Due to safety reasons there is no way to provide this property currently. - `ConfigBuilder::set_time_offset` now takes a `time::UtcOffset` instead of a `chrono::FixedOffset`. - `ConfigBuilder::set_time_format` has been replaced by three new variants - `ConfigBuilder::set_time_format_rfc2822` sets the time format to use the format described by rfc2822. - `ConfigBuilder::set_time_format_rfc3339` sets the time format to use the format described by rfc3339. - `ConfigBuilder::set_time_format_custom` sets the time format to a custom time format best created using `time::macros::format_description`. - Runtime provided time format configuration is possible, but difficult due to lifetime constraints. - Fixing this will require a solution to [time-rs/time#429](https://github.com/time-rs/time/issues/429) - *Note*: The default format is unchanged "\[hour]:\[minute]:\[second]" ### [`v0.11.2`](https://github.com/drakulix/simplelog.rs/compare/v0.11.1...v0.11.2) [Compare Source](https://github.com/drakulix/simplelog.rs/compare/v0.11.1...v0.11.2) ### [`v0.11.1`](https://github.com/drakulix/simplelog.rs/compare/v0.11.0...v0.11.1) [Compare Source](https://github.com/drakulix/simplelog.rs/compare/v0.11.0...v0.11.1) ### [`v0.11.0`](https://github.com/drakulix/simplelog.rs/blob/HEAD/CHANGELOG.md#v0110) [Compare Source](https://github.com/drakulix/simplelog.rs/compare/v0.10.2...v0.11.0) - Add colored log levels using `ansi_term` (PR [#&#8203;88](https://github.com/drakulix/simplelog.rs/issues/88), credits to [@&#8203;manio](https://github.com/manio)) - Add target padding (PR [#&#8203;85](https://github.com/drakulix/simplelog.rs/issues/85), credits to [@&#8203;bytebeamio](https://github.com/bytebeamio)) - Add optional color and style support using `paris` crate (PR [#&#8203;84](https://github.com/drakulix/simplelog.rs/issues/84), credits to [@&#8203;manio](https://github.com/manio)) </details> <details> <summary>codyps/rust-systemd (systemd)</summary> ### [`v0.10.1`](https://github.com/codyps/rust-systemd/compare/systemd-0.10.0...systemd-0.10.1) [Compare Source](https://github.com/codyps/rust-systemd/compare/systemd-0.10.0...systemd-0.10.1) ### [`v0.10.0`](https://github.com/codyps/rust-systemd/compare/systemd-0.9.3...systemd-0.10.0) [Compare Source](https://github.com/codyps/rust-systemd/compare/systemd-0.9.3...systemd-0.10.0) ### [`v0.9.3`](https://github.com/codyps/rust-systemd/compare/systemd-0.9.2...systemd-0.9.3) [Compare Source](https://github.com/codyps/rust-systemd/compare/systemd-0.9.2...systemd-0.9.3) ### [`v0.9.2`](https://github.com/codyps/rust-systemd/compare/systemd-0.9.1...systemd-0.9.2) [Compare Source](https://github.com/codyps/rust-systemd/compare/systemd-0.9.1...systemd-0.9.2) ### [`v0.9.1`](https://github.com/codyps/rust-systemd/compare/systemd-0.9.0...systemd-0.9.1) [Compare Source](https://github.com/codyps/rust-systemd/compare/systemd-0.9.0...systemd-0.9.1) </details> <details> <summary>tokio-rs/tokio (tokio)</summary> ### [`v1.48.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.48.0): Tokio v1.48.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.47.2...tokio-1.48.0) ### 1.48.0 (October 14th, 2025) The MSRV is increased to 1.71. ##### Added - fs: add `File::max_buf_size` ([#&#8203;7594]) - io: export `Chain` of `AsyncReadExt::chain` ([#&#8203;7599]) - net: add `SocketAddr::as_abstract_name` ([#&#8203;7491]) - net: add `TcpStream::quickack` and `TcpStream::set_quickack` ([#&#8203;7490]) - net: implement `AsRef<Self>` for `TcpStream` and `UnixStream` ([#&#8203;7573]) - task: add `LocalKey::try_get` ([#&#8203;7666]) - task: implement `Ord` for `task::Id` ([#&#8203;7530]) ##### Changed - deps: bump windows-sys to version 0.61 ([#&#8203;7645]) - fs: preserve `max_buf_size` when cloning a `File` ([#&#8203;7593]) - macros: suppress `clippy::unwrap_in_result` in `#[tokio::main]` ([#&#8203;7651]) - net: remove `PollEvented` noise from Debug formats ([#&#8203;7675]) - process: upgrade `Command::spawn_with` to use `FnOnce` ([#&#8203;7511]) - sync: remove inner mutex in `SetOnce` ([#&#8203;7554]) - sync: use `UnsafeCell::get_mut` in `Mutex::get_mut` and `RwLock::get_mut` ([#&#8203;7569]) - time: reduce the generated code size of `Timeout<T>::poll` ([#&#8203;7535]) ##### Fixed - macros: fix hygiene issue in `join!` and `try_join!` ([#&#8203;7638]) - net: fix copy/paste errors in udp peek methods ([#&#8203;7604]) - process: fix error when runtime is shut down on nightly-2025-10-12 ([#&#8203;7672]) - runtime: use release ordering in `wake_by_ref()` even if already woken ([#&#8203;7622]) - sync: close the `broadcast::Sender` in `broadcast::Sender::new()` ([#&#8203;7629]) - sync: fix implementation of unused `RwLock::try_*` methods ([#&#8203;7587]) ##### Unstable - tokio: use cargo features instead of `--cfg` flags for `taskdump` and `io_uring` ([#&#8203;7655], [#&#8203;7621]) - fs: support `io_uring` in `fs::write` ([#&#8203;7567]) - fs: support `io_uring` with `File::open()` ([#&#8203;7617]) - fs: support `io_uring` with `OpenOptions` ([#&#8203;7321]) - macros: add `local` runtime flavor ([#&#8203;7375], [#&#8203;7597]) ##### Documented - io: clarify the zero capacity case of `AsyncRead::poll_read` ([#&#8203;7580]) - io: fix typos in the docs of `AsyncFd` readiness guards ([#&#8203;7583]) - net: clarify socket gets closed on drop ([#&#8203;7526]) - net: clarify the behavior of `UCred::pid()` on Cygwin ([#&#8203;7611]) - net: clarify the supported platform of `set_reuseport()` and `reuseport()` ([#&#8203;7628]) - net: qualify that `SO_REUSEADDR` is only set on Unix ([#&#8203;7533]) - runtime: add guide for choosing between runtime types ([#&#8203;7635]) - runtime: clarify the behavior of `Handle::block_on` ([#&#8203;7665]) - runtime: clarify the edge case of `Builder::global_queue_interval()` ([#&#8203;7605]) - sync: clarify bounded channel panic behavior ([#&#8203;7641]) - sync: clarify the behavior of `tokio::sync::watch::Receiver` ([#&#8203;7584]) - sync: document cancel safety on `SetOnce::wait` ([#&#8203;7506]) - sync: fix the docs of `parking_lot` feature flag ([#&#8203;7663]) - sync: improve the docs of `UnboundedSender::send` ([#&#8203;7661]) - sync: improve the docs of `sync::watch` ([#&#8203;7601]) - sync: reword allocation failure paragraph in broadcast docs ([#&#8203;7595]) - task: clarify the behavior of several `spawn_local` methods ([#&#8203;7669]) - task: clarify the task ID reuse guarantees ([#&#8203;7577]) - task: improve the example of `poll_proceed` ([#&#8203;7586]) [#&#8203;7321]: https://github.com/tokio-rs/tokio/pull/7321 [#&#8203;7375]: https://github.com/tokio-rs/tokio/pull/7375 [#&#8203;7490]: https://github.com/tokio-rs/tokio/pull/7490 [#&#8203;7491]: https://github.com/tokio-rs/tokio/pull/7491 [#&#8203;7494]: https://github.com/tokio-rs/tokio/pull/7494 [#&#8203;7506]: https://github.com/tokio-rs/tokio/pull/7506 [#&#8203;7511]: https://github.com/tokio-rs/tokio/pull/7511 [#&#8203;7526]: https://github.com/tokio-rs/tokio/pull/7526 [#&#8203;7530]: https://github.com/tokio-rs/tokio/pull/7530 [#&#8203;7533]: https://github.com/tokio-rs/tokio/pull/7533 [#&#8203;7535]: https://github.com/tokio-rs/tokio/pull/7535 [#&#8203;7554]: https://github.com/tokio-rs/tokio/pull/7554 [#&#8203;7567]: https://github.com/tokio-rs/tokio/pull/7567 [#&#8203;7569]: https://github.com/tokio-rs/tokio/pull/7569 [#&#8203;7573]: https://github.com/tokio-rs/tokio/pull/7573 [#&#8203;7577]: https://github.com/tokio-rs/tokio/pull/7577 [#&#8203;7580]: https://github.com/tokio-rs/tokio/pull/7580 [#&#8203;7583]: https://github.com/tokio-rs/tokio/pull/7583 [#&#8203;7584]: https://github.com/tokio-rs/tokio/pull/7584 [#&#8203;7586]: https://github.com/tokio-rs/tokio/pull/7586 [#&#8203;7587]: https://github.com/tokio-rs/tokio/pull/7587 [#&#8203;7593]: https://github.com/tokio-rs/tokio/pull/7593 [#&#8203;7594]: https://github.com/tokio-rs/tokio/pull/7594 [#&#8203;7595]: https://github.com/tokio-rs/tokio/pull/7595 [#&#8203;7597]: https://github.com/tokio-rs/tokio/pull/7597 [#&#8203;7599]: https://github.com/tokio-rs/tokio/pull/7599 [#&#8203;7601]: https://github.com/tokio-rs/tokio/pull/7601 [#&#8203;7604]: https://github.com/tokio-rs/tokio/pull/7604 [#&#8203;7605]: https://github.com/tokio-rs/tokio/pull/7605 [#&#8203;7611]: https://github.com/tokio-rs/tokio/pull/7611 [#&#8203;7617]: https://github.com/tokio-rs/tokio/pull/7617 [#&#8203;7621]: https://github.com/tokio-rs/tokio/pull/7621 [#&#8203;7622]: https://github.com/tokio-rs/tokio/pull/7622 [#&#8203;7628]: https://github.com/tokio-rs/tokio/pull/7628 [#&#8203;7629]: https://github.com/tokio-rs/tokio/pull/7629 [#&#8203;7635]: https://github.com/tokio-rs/tokio/pull/7635 [#&#8203;7638]: https://github.com/tokio-rs/tokio/pull/7638 [#&#8203;7641]: https://github.com/tokio-rs/tokio/pull/7641 [#&#8203;7645]: https://github.com/tokio-rs/tokio/pull/7645 [#&#8203;7651]: https://github.com/tokio-rs/tokio/pull/7651 [#&#8203;7655]: https://github.com/tokio-rs/tokio/pull/7655 [#&#8203;7661]: https://github.com/tokio-rs/tokio/pull/7661 [#&#8203;7663]: https://github.com/tokio-rs/tokio/pull/7663 [#&#8203;7665]: https://github.com/tokio-rs/tokio/pull/7665 [#&#8203;7666]: https://github.com/tokio-rs/tokio/pull/7666 [#&#8203;7669]: https://github.com/tokio-rs/tokio/pull/7669 [#&#8203;7672]: https://github.com/tokio-rs/tokio/pull/7672 [#&#8203;7675]: https://github.com/tokio-rs/tokio/pull/7675 ### [`v1.47.2`](https://github.com/tokio-rs/tokio/compare/tokio-1.47.1...tokio-1.47.2) [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.47.1...tokio-1.47.2) ### [`v1.47.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.47.1): Tokio v1.47.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.47.0...tokio-1.47.1) ### 1.47.1 (August 1st, 2025) ##### Fixed - process: fix panic from spurious pidfd wakeup ([#&#8203;7494]) - sync: fix broken link of Python `asyncio.Event` in `SetOnce` docs ([#&#8203;7485]) [#&#8203;7485]: https://github.com/tokio-rs/tokio/pull/7485 [#&#8203;7494]: https://github.com/tokio-rs/tokio/pull/7494 ### [`v1.47.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.47.0): Tokio v1.47.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.46.1...tokio-1.47.0) ### 1.47.0 (July 25th, 2025) This release adds `poll_proceed` and `cooperative` to the `coop` module for cooperative scheduling, adds `SetOnce` to the `sync` module which provides similar functionality to \[`std::sync::OnceLock`], and adds a new method `sync::Notify::notified_owned()` which returns an `OwnedNotified` without a lifetime parameter. #### Added - coop: add `cooperative` and `poll_proceed` ([#&#8203;7405]) - sync: add `SetOnce` ([#&#8203;7418]) - sync: add `sync::Notify::notified_owned()` ([#&#8203;7465]) #### Changed - deps: upgrade windows-sys 0.52 → 0.59 (\[[#&#8203;7117](https://github.com/tokio-rs/tokio/issues/7117)]) - deps: update to socket2 v0.6 (\[[#&#8203;7443](https://github.com/tokio-rs/tokio/issues/7443)]) - sync: improve `AtomicWaker::wake` performance ([#&#8203;7450]) #### Documented - metrics: fix listed feature requirements for some metrics ([#&#8203;7449]) - runtime: improve safety comments of `Readiness<'_>` ([#&#8203;7415]) [#&#8203;7405]: https://github.com/tokio-rs/tokio/pull/7405 [#&#8203;7415]: https://github.com/tokio-rs/tokio/pull/7415 [#&#8203;7418]: https://github.com/tokio-rs/tokio/pull/7418 [#&#8203;7449]: https://github.com/tokio-rs/tokio/pull/7449 [#&#8203;7450]: https://github.com/tokio-rs/tokio/pull/7450 [#&#8203;7465]: https://github.com/tokio-rs/tokio/pull/7465 ### [`v1.46.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.46.1): Tokio v1.46.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.46.0...tokio-1.46.1) ### 1.46.1 (July 4th, 2025) This release fixes incorrect spawn locations in runtime task hooks for tasks spawned using `tokio::spawn` rather than `Runtime::spawn`. This issue only effected the spawn location in `TaskMeta::spawned_at`, and did not effect task locations in Tracing events. #### Unstable - runtime: add `TaskMeta::spawn_location` tracking where a task was spawned ([#&#8203;7440]) [#&#8203;7440]: https://github.com/tokio-rs/tokio/pull/7440 ### [`v1.46.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.46.0): Tokio v1.46.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.45.1...tokio-1.46.0) ### 1.46.0 (July 2nd, 2025) ##### Fixed - net: fixed `TcpStream::shutdown` incorrectly returning an error on macOS ([#&#8203;7290]) #### Added - sync: `mpsc::OwnedPermit::{same_channel, same_channel_as_sender}` methods ([#&#8203;7389]) - macros: `biased` option for `join!` and `try_join!`, similar to `select!` ([#&#8203;7307]) - net: support for cygwin ([#&#8203;7393]) - net: support `pope::OpenOptions::read_write` on Android ([#&#8203;7426]) - net: add `Clone` implementation for `net::unix::SocketAddr` ([#&#8203;7422]) #### Changed - runtime: eliminate unnecessary lfence while operating on `queue::Local<T>` ([#&#8203;7340]) - task: disallow blocking in `LocalSet::{poll,drop}` ([#&#8203;7372]) #### Unstable - runtime: add `TaskMeta::spawn_location` tracking where a task was spawned ([#&#8203;7417]) - runtime: removed borrow from `LocalOptions` parameter to `runtime::Builder::build_local` ([#&#8203;7346]) #### Documented - io: clarify behavior of seeking when `start_seek` is not used ([#&#8203;7366]) - io: document cancellation safety of `AsyncWriteExt::flush` ([#&#8203;7364]) - net: fix docs for `recv_buffer_size` method ([#&#8203;7336]) - net: fix broken link of `RawFd` in `TcpSocket` docs ([#&#8203;7416]) - net: update `AsRawFd` doc link to current Rust stdlib location ([#&#8203;7429]) - readme: fix double period in reactor description ([#&#8203;7363]) - runtime: add doc note that `on_*_task_poll` is unstable ([#&#8203;7311]) - sync: update broadcast docs on allocation failure ([#&#8203;7352]) - time: add a missing panic scenario of `time::advance` ([#&#8203;7394]) [#&#8203;7290]: https://github.com/tokio-rs/tokio/pull/7290 [#&#8203;7307]: https://github.com/tokio-rs/tokio/pull/7307 [#&#8203;7311]: https://github.com/tokio-rs/tokio/pull/7311 [#&#8203;7336]: https://github.com/tokio-rs/tokio/pull/7336 [#&#8203;7340]: https://github.com/tokio-rs/tokio/pull/7340 [#&#8203;7346]: https://github.com/tokio-rs/tokio/pull/7346 [#&#8203;7352]: https://github.com/tokio-rs/tokio/pull/7352 [#&#8203;7363]: https://github.com/tokio-rs/tokio/pull/7363 [#&#8203;7364]: https://github.com/tokio-rs/tokio/pull/7364 [#&#8203;7366]: https://github.com/tokio-rs/tokio/pull/7366 [#&#8203;7372]: https://github.com/tokio-rs/tokio/pull/7372 [#&#8203;7389]: https://github.com/tokio-rs/tokio/pull/7389 [#&#8203;7393]: https://github.com/tokio-rs/tokio/pull/7393 [#&#8203;7394]: https://github.com/tokio-rs/tokio/pull/7394 [#&#8203;7416]: https://github.com/tokio-rs/tokio/pull/7416 [#&#8203;7422]: https://github.com/tokio-rs/tokio/pull/7422 [#&#8203;7426]: https://github.com/tokio-rs/tokio/pull/7426 [#&#8203;7429]: https://github.com/tokio-rs/tokio/pull/7429 [#&#8203;7417]: https://github.com/tokio-rs/tokio/pull/7417 ### [`v1.45.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.45.1): Tokio v1.45.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.45.0...tokio-1.45.1) ### 1.45.1 (May 24th, 2025) This fixes a regression on the wasm32-unknown-unknown target, where code that previously did not panic due to calls to `Instant::now()` started failing. This is due to the stabilization of the first time-based metric. ##### Fixed - Disable time-based metrics on wasm32-unknown-unknown ([#&#8203;7322]) [#&#8203;7322]: https://github.com/tokio-rs/tokio/pull/7322 ### [`v1.45.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.45.0): Tokio v1.45.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.44.2...tokio-1.45.0) ##### Added - metrics: stabilize `worker_total_busy_duration`, `worker_park_count`, and `worker_unpark_count` ([#&#8203;6899], [#&#8203;7276]) - process: add `Command::spawn_with` ([#&#8203;7249]) ##### Changed - io: do not require `Unpin` for some trait impls ([#&#8203;7204]) - rt: mark `runtime::Handle` as unwind safe ([#&#8203;7230]) - time: revert internal sharding implementation ([#&#8203;7226]) ##### Unstable - rt: remove alt multi-threaded runtime ([#&#8203;7275]) [#&#8203;6899]: https://github.com/tokio-rs/tokio/pull/6899 [#&#8203;7276]: https://github.com/tokio-rs/tokio/pull/7276 [#&#8203;7249]: https://github.com/tokio-rs/tokio/pull/7249 [#&#8203;7204]: https://github.com/tokio-rs/tokio/pull/7204 [#&#8203;7230]: https://github.com/tokio-rs/tokio/pull/7230 [#&#8203;7226]: https://github.com/tokio-rs/tokio/pull/7226 [#&#8203;7275]: https://github.com/tokio-rs/tokio/pull/7275 ### [`v1.44.2`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.44.2): Tokio v1.44.2 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.44.1...tokio-1.44.2) This release fixes a soundness issue in the broadcast channel. The channel accepts values that are `Send` but `!Sync`. Previously, the channel called `clone()` on these values without synchronizing. This release fixes the channel by synchronizing calls to `.clone()` (Thanks Austin Bonander for finding and reporting the issue). ##### Fixed - sync: synchronize `clone()` call in broadcast channel ([#&#8203;7232]) [#&#8203;7232]: https://github.com/tokio-rs/tokio/pull/7232 ### [`v1.44.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.44.1): Tokio v1.44.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.44.0...tokio-1.44.1) ### 1.44.1 (March 13th, 2025) ##### Fixed - rt: skip defer queue in `block_in_place` context ([#&#8203;7216]) [#&#8203;7216]: https://github.com/tokio-rs/tokio/pull/7216 ### [`v1.44.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.44.0): Tokio v1.44.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.43.3...tokio-1.44.0) ### 1.44.0 (March 7th, 2025) This release changes the `from_std` method on sockets to panic if a blocking socket is provided. We determined this change is not a breaking change as Tokio is not intended to operate using blocking sockets. Doing so results in runtime hangs and should be considered a bug. Accidentally passing a blocking socket to Tokio is one of the most common user mistakes. If this change causes an issue for you, please comment on [#&#8203;7172]. ##### Added - coop: add `task::coop` module ([#&#8203;7116]) - process: add `Command::get_kill_on_drop()` ([#&#8203;7086]) - sync: add `broadcast::Sender::closed` ([#&#8203;6685], [#&#8203;7090]) - sync: add `broadcast::WeakSender` ([#&#8203;7100]) - sync: add `oneshot::Receiver::is_empty()` ([#&#8203;7153]) - sync: add `oneshot::Receiver::is_terminated()` ([#&#8203;7152]) ##### Fixed - fs: empty reads on `File` should not start a background read ([#&#8203;7139]) - process: calling `start_kill` on exited child should not fail ([#&#8203;7160]) - signal: fix `CTRL_CLOSE`, `CTRL_LOGOFF`, `CTRL_SHUTDOWN` on windows ([#&#8203;7122]) - sync: properly handle panic during mpsc drop ([#&#8203;7094]) ##### Changes - runtime: clean up magic number in registration set ([#&#8203;7112]) - coop: make coop yield using waker defer strategy ([#&#8203;7185]) - macros: make `select!` budget-aware ([#&#8203;7164]) - net: panic when passing a blocking socket to `from_std` ([#&#8203;7166]) - io: clean up buffer casts ([#&#8203;7142]) ##### Changes to unstable APIs - rt: add before and after task poll callbacks ([#&#8203;7120]) - tracing: make the task tracing API unstable public ([#&#8203;6972]) ##### Documented - docs: fix nesting of sections in top-level docs ([#&#8203;7159]) - fs: rename symlink and hardlink parameter names ([#&#8203;7143]) - io: swap reader/writer in simplex doc test ([#&#8203;7176]) - macros: docs about `select!` alternatives ([#&#8203;7110]) - net: rename the argument for `send_to` ([#&#8203;7146]) - process: add example for reading `Child` stdout ([#&#8203;7141]) - process: clarify `Child::kill` behavior ([#&#8203;7162]) - process: fix grammar of the `ChildStdin` struct doc comment ([#&#8203;7192]) - runtime: consistently use `worker_threads` instead of `core_threads` ([#&#8203;7186]) [#&#8203;6685]: https://github.com/tokio-rs/tokio/pull/6685 [#&#8203;6972]: https://github.com/tokio-rs/tokio/pull/6972 [#&#8203;7086]: https://github.com/tokio-rs/tokio/pull/7086 [#&#8203;7090]: https://github.com/tokio-rs/tokio/pull/7090 [#&#8203;7094]: https://github.com/tokio-rs/tokio/pull/7094 [#&#8203;7100]: https://github.com/tokio-rs/tokio/pull/7100 [#&#8203;7110]: https://github.com/tokio-rs/tokio/pull/7110 [#&#8203;7112]: https://github.com/tokio-rs/tokio/pull/7112 [#&#8203;7116]: https://github.com/tokio-rs/tokio/pull/7116 [#&#8203;7120]: https://github.com/tokio-rs/tokio/pull/7120 [#&#8203;7122]: https://github.com/tokio-rs/tokio/pull/7122 [#&#8203;7139]: https://github.com/tokio-rs/tokio/pull/7139 [#&#8203;7141]: https://github.com/tokio-rs/tokio/pull/7141 [#&#8203;7142]: https://github.com/tokio-rs/tokio/pull/7142 [#&#8203;7143]: https://github.com/tokio-rs/tokio/pull/7143 [#&#8203;7146]: https://github.com/tokio-rs/tokio/pull/7146 [#&#8203;7152]: https://github.com/tokio-rs/tokio/pull/7152 [#&#8203;7153]: https://github.com/tokio-rs/tokio/pull/7153 [#&#8203;7159]: https://github.com/tokio-rs/tokio/pull/7159 [#&#8203;7160]: https://github.com/tokio-rs/tokio/pull/7160 [#&#8203;7162]: https://github.com/tokio-rs/tokio/pull/7162 [#&#8203;7164]: https://github.com/tokio-rs/tokio/pull/7164 [#&#8203;7166]: https://github.com/tokio-rs/tokio/pull/7166 [#&#8203;7172]: https://github.com/tokio-rs/tokio/pull/7172 [#&#8203;7176]: https://github.com/tokio-rs/tokio/pull/7176 [#&#8203;7185]: https://github.com/tokio-rs/tokio/pull/7185 [#&#8203;7186]: https://github.com/tokio-rs/tokio/pull/7186 [#&#8203;7192]: https://github.com/tokio-rs/tokio/pull/7192 ### [`v1.43.3`](https://github.com/tokio-rs/tokio/compare/tokio-1.43.2...tokio-1.43.3) [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.43.2...tokio-1.43.3) ### [`v1.43.2`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.43.2): Tokio v1.43.2 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.43.1...tokio-1.43.2) ### 1.43.2 (August 1st, 2025) ##### Fixed - process: fix panic from spurious pidfd wakeup ([#&#8203;7494]) [#&#8203;7494]: https://github.com/tokio-rs/tokio/pull/7494 ### [`v1.43.1`](https://github.com/tokio-rs/tokio/compare/tokio-1.43.0...tokio-1.43.1) [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.43.0...tokio-1.43.1) ### [`v1.43.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.43.0): Tokio v1.43.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.42.1...tokio-1.43.0) ### 1.43.0 (Jan 8th, 2025) ##### Added - net: add `UdpSocket::peek` methods ([#&#8203;7068]) - net: add support for Haiku OS ([#&#8203;7042]) - process: add `Command::into_std()` ([#&#8203;7014]) - signal: add `SignalKind::info` on illumos ([#&#8203;6995]) - signal: add support for realtime signals on illumos ([#&#8203;7029]) ##### Fixed - io: don't call `set_len` before initializing vector in `Blocking` ([#&#8203;7054]) - macros: suppress `clippy::needless_return` in `#[tokio::main]` ([#&#8203;6874]) - runtime: fix thread parking on WebAssembly ([#&#8203;7041]) ##### Changes - chore: use unsync loads for `unsync_load` ([#&#8203;7073]) - io: use `Buf::put_bytes` in `Repeat` read impl ([#&#8203;7055]) - task: drop the join waker of a task eagerly ([#&#8203;6986]) ##### Changes to unstable APIs - metrics: improve flexibility of H2Histogram Configuration ([#&#8203;6963]) - taskdump: add accessor methods for backtrace ([#&#8203;6975]) ##### Documented - io: clarify `ReadBuf::uninit` allows initialized buffers as well ([#&#8203;7053]) - net: fix ambiguity in `TcpStream::try_write_vectored` docs ([#&#8203;7067]) - runtime: fix `LocalRuntime` doc links ([#&#8203;7074]) - sync: extend documentation for `watch::Receiver::wait_for` ([#&#8203;7038]) - sync: fix typos in `OnceCell` docs ([#&#8203;7047]) [#&#8203;6874]: https://github.com/tokio-rs/tokio/pull/6874 [#&#8203;6963]: https://github.com/tokio-rs/tokio/pull/6963 [#&#8203;6975]: https://github.com/tokio-rs/tokio/pull/6975 [#&#8203;6986]: https://github.com/tokio-rs/tokio/pull/6986 [#&#8203;6995]: https://github.com/tokio-rs/tokio/pull/6995 [#&#8203;7014]: https://github.com/tokio-rs/tokio/pull/7014 [#&#8203;7029]: https://github.com/tokio-rs/tokio/pull/7029 [#&#8203;7038]: https://github.com/tokio-rs/tokio/pull/7038 [#&#8203;7041]: https://github.com/tokio-rs/tokio/pull/7041 [#&#8203;7042]: https://github.com/tokio-rs/tokio/pull/7042 [#&#8203;7047]: https://github.com/tokio-rs/tokio/pull/7047 [#&#8203;7053]: https://github.com/tokio-rs/tokio/pull/7053 [#&#8203;7054]: https://github.com/tokio-rs/tokio/pull/7054 [#&#8203;7055]: https://github.com/tokio-rs/tokio/pull/7055 [#&#8203;7067]: https://github.com/tokio-rs/tokio/pull/7067 [#&#8203;7068]: https://github.com/tokio-rs/tokio/pull/7068 [#&#8203;7073]: https://github.com/tokio-rs/tokio/pull/7073 [#&#8203;7074]: https://github.com/tokio-rs/tokio/pull/7074 ### [`v1.42.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.42.1): Tokio v1.42.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.42.0...tokio-1.42.1) This release fixes a soundness issue in the broadcast channel. The channel accepts values that are `Send` but `!Sync`. Previously, the channel called `clone()` on these values without synchronizing. This release fixes the channel by synchronizing calls to `.clone()` (Thanks Austin Bonander for finding and reporting the issue). ##### Fixed - sync: synchronize `clone()` call in broadcast channel ([#&#8203;7232]) [#&#8203;7232]: https://github.com/tokio-rs/tokio/pull/7232 ### [`v1.42.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.42.0): Tokio v1.42.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.41.1...tokio-1.42.0) ### 1.42.0 (Dec 3rd, 2024) ##### Added - io: add `AsyncFd::{try_io, try_io_mut}` ([#&#8203;6967]) ##### Fixed - io: avoid `ptr->ref->ptr` roundtrip in RegistrationSet ([#&#8203;6929]) - runtime: do not defer `yield_now` inside `block_in_place` ([#&#8203;6999]) ##### Changes - io: simplify io readiness logic ([#&#8203;6966]) ##### Documented - net: fix docs for `tokio::net::unix::{pid_t, gid_t, uid_t}` ([#&#8203;6791]) - time: fix a typo in `Instant` docs ([#&#8203;6982]) [#&#8203;6791]: https://github.com/tokio-rs/tokio/pull/6791 [#&#8203;6929]: https://github.com/tokio-rs/tokio/pull/6929 [#&#8203;6966]: https://github.com/tokio-rs/tokio/pull/6966 [#&#8203;6967]: https://github.com/tokio-rs/tokio/pull/6967 [#&#8203;6982]: https://github.com/tokio-rs/tokio/pull/6982 [#&#8203;6999]: https://github.com/tokio-rs/tokio/pull/6999 ### [`v1.41.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.41.1): Tokio v1.41.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.41.0...tokio-1.41.1) ### 1.41.1 (Nov 7th, 2024) ##### Fixed - metrics: fix bug with wrong number of buckets for the histogram ([#&#8203;6957]) - net: display `net` requirement for `net::UdpSocket` in docs ([#&#8203;6938]) - net: fix typo in `TcpStream` internal comment ([#&#8203;6944]) [#&#8203;6957]: https://github.com/tokio-rs/tokio/pull/6957 [#&#8203;6938]: https://github.com/tokio-rs/tokio/pull/6938 [#&#8203;6944]: https://github.com/tokio-rs/tokio/pull/6944 ### [`v1.41.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.41.0): Tokio v1.41.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.40.0...tokio-1.41.0) ### 1.41.0 (Oct 22th, 2024) ##### Added - metrics: stabilize `global_queue_depth` ([#&#8203;6854], [#&#8203;6918]) - net: add conversions for unix `SocketAddr` ([#&#8203;6868]) - sync: add `watch::Sender::sender_count` ([#&#8203;6836]) - sync: add `mpsc::Receiver::blocking_recv_many` ([#&#8203;6867]) - task: stabilize `Id` apis ([#&#8203;6793], [#&#8203;6891]) ##### Added (unstable) - metrics: add H2 Histogram option to improve histogram granularity ([#&#8203;6897]) - metrics: rename some histogram apis ([#&#8203;6924]) - runtime: add `LocalRuntime` ([#&#8203;6808]) ##### Changed - runtime: box futures larger than 16k on release mode ([#&#8203;6826]) - sync: add `#[must_use]` to `Notified` ([#&#8203;6828]) - sync: make `watch` cooperative ([#&#8203;6846]) - sync: make `broadcast::Receiver` cooperative ([#&#8203;6870]) - task: add task size to tracing instrumentation ([#&#8203;6881]) - wasm: enable `cfg_fs` for `wasi` target ([#&#8203;6822]) ##### Fixed - net: fix regression of abstract socket path in unix socket ([#&#8203;6838]) ##### Documented - io: recommend `OwnedFd` with `AsyncFd` ([#&#8203;6821]) - io: document cancel safety of `AsyncFd` methods ([#&#8203;6890]) - macros: render more comprehensible documentation for `join` and `try_join` ([#&#8203;6814], [#&#8203;6841]) - net: fix swapped examples for `TcpSocket::set_nodelay` and `TcpSocket::nodelay` ([#&#8203;6840]) - sync: document runtime compatibility ([#&#8203;6833]) [#&#8203;6793]: https://github.com/tokio-rs/tokio/pull/6793 [#&#8203;6808]: https://github.com/tokio-rs/tokio/pull/6808 [#&#8203;6810]: https://github.com/tokio-rs/tokio/pull/6810 [#&#8203;6814]: https://github.com/tokio-rs/tokio/pull/6814 [#&#8203;6821]: https://github.com/tokio-rs/tokio/pull/6821 [#&#8203;6822]: https://github.com/tokio-rs/tokio/pull/6822 [#&#8203;6826]: https://github.com/tokio-rs/tokio/pull/6826 [#&#8203;6828]: https://github.com/tokio-rs/tokio/pull/6828 [#&#8203;6833]: https://github.com/tokio-rs/tokio/pull/6833 [#&#8203;6836]: https://github.com/tokio-rs/tokio/pull/6836 [#&#8203;6838]: https://github.com/tokio-rs/tokio/pull/6838 [#&#8203;6840]: https://github.com/tokio-rs/tokio/pull/6840 [#&#8203;6841]: https://github.com/tokio-rs/tokio/pull/6841 [#&#8203;6846]: https://github.com/tokio-rs/tokio/pull/6846 [#&#8203;6854]: https://github.com/tokio-rs/tokio/pull/6854 [#&#8203;6867]: https://github.com/tokio-rs/tokio/pull/6867 [#&#8203;6868]: https://github.com/tokio-rs/tokio/pull/6868 [#&#8203;6870]: https://github.com/tokio-rs/tokio/pull/6870 [#&#8203;6881]: https://github.com/tokio-rs/tokio/pull/6881 [#&#8203;6890]: https://github.com/tokio-rs/tokio/pull/6890 [#&#8203;6891]: https://github.com/tokio-rs/tokio/pull/6891 [#&#8203;6897]: https://github.com/tokio-rs/tokio/pull/6897 [#&#8203;6918]: https://github.com/tokio-rs/tokio/pull/6918 [#&#8203;6924]: https://github.com/tokio-rs/tokio/pull/6924 ### [`v1.40.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.40.0): Tokio v1.40.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.39.3...tokio-1.40.0) ### 1.40.0 (August 30th, 2024) ##### Added - io: add `util::SimplexStream` ([#&#8203;6589]) - process: stabilize `Command::process_group` ([#&#8203;6731]) - sync: add `{TrySendError,SendTimeoutError}::into_inner` ([#&#8203;6755]) - task: add `JoinSet::join_all` ([#&#8203;6784]) ##### Added (unstable) - runtime: add `Builder::{on_task_spawn, on_task_terminate}` ([#&#8203;6742]) ##### Changed - io: use vectored io for `write_all_buf` when possible ([#&#8203;6724]) - runtime: prevent niche-optimization to avoid triggering miri ([#&#8203;6744]) - sync: mark mpsc types as `UnwindSafe` ([#&#8203;6783]) - sync,time: make `Sleep` and `BatchSemaphore` instrumentation explicit roots ([#&#8203;6727]) - task: use `NonZeroU64` for `task::Id` ([#&#8203;6733]) - task: include panic message when printing `JoinError` ([#&#8203;6753]) - task: add `#[must_use]` to `JoinHandle::abort_handle` ([#&#8203;6762]) - time: eliminate timer wheel allocations ([#&#8203;6779]) ##### Documented - docs: clarify that `[build]` section doesn't go in Cargo.toml ([#&#8203;6728]) - io: clarify zero remaining capacity case ([#&#8203;6790]) - macros: improve documentation for `select!` ([#&#8203;6774]) - sync: document mpsc channel allocation behavior ([#&#8203;6773]) [#&#8203;6589]: https://github.com/tokio-rs/tokio/pull/6589 [#&#8203;6724]: https://github.com/tokio-rs/tokio/pull/6724 [#&#8203;6727]: https://github.com/tokio-rs/tokio/pull/6727 [#&#8203;6728]: https://github.com/tokio-rs/tokio/pull/6728 [#&#8203;6731]: https://github.com/tokio-rs/tokio/pull/6731 [#&#8203;6733]: https://github.com/tokio-rs/tokio/pull/6733 [#&#8203;6742]: https://github.com/tokio-rs/tokio/pull/6742 [#&#8203;6744]: https://github.com/tokio-rs/tokio/pull/6744 [#&#8203;6753]: https://github.com/tokio-rs/tokio/pull/6753 [#&#8203;6755]: https://github.com/tokio-rs/tokio/pull/6755 [#&#8203;6762]: https://github.com/tokio-rs/tokio/pull/6762 [#&#8203;6773]: https://github.com/tokio-rs/tokio/pull/6773 [#&#8203;6774]: https://github.com/tokio-rs/tokio/pull/6774 [#&#8203;6779]: https://github.com/tokio-rs/tokio/pull/6779 [#&#8203;6783]: https://github.com/tokio-rs/tokio/pull/6783 [#&#8203;6784]: https://github.com/tokio-rs/tokio/pull/6784 [#&#8203;6790]: https://github.com/tokio-rs/tokio/pull/6790 ### [`v1.39.3`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.39.3): Tokio v1.39.3 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.39.2...tokio-1.39.3) ### 1.39.3 (August 17th, 2024) This release fixes a regression where the unix socket api stopped accepting the abstract socket namespace. ([#&#8203;6772]) [#&#8203;6772]: https://github.com/tokio-rs/tokio/pull/6772 ### [`v1.39.2`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.39.2): Tokio v1.39.2 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.39.1...tokio-1.39.2) ### 1.39.2 (July 27th, 2024) This release fixes a regression where the `select!` macro stopped accepting expressions that make use of temporary lifetime extension. ([#&#8203;6722]) [#&#8203;6722]: https://github.com/tokio-rs/tokio/pull/6722 ### [`v1.39.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.39.1): Tokio v1.39.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.39.0...tokio-1.39.1) ### 1.39.1 (July 23rd, 2024) This release reverts "time: avoid traversing entries in the time wheel twice" because it contains a bug. ([#&#8203;6715]) [#&#8203;6715]: https://github.com/tokio-rs/tokio/pull/6715 ### [`v1.39.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.39.0): Tokio v1.39.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.38.2...tokio-1.39.0) ### 1.39.0 (July 23rd, 2024) - This release bumps the MSRV to 1.70. ([#&#8203;6645]) - This release upgrades to mio v1. ([#&#8203;6635]) - This release upgrades to windows-sys v0.52 ([#&#8203;6154]) ##### Added - io: implement `AsyncSeek` for `Empty` ([#&#8203;6663]) - metrics: stabilize `num_alive_tasks` ([#&#8203;6619], [#&#8203;6667]) - process: add `Command::as_std_mut` ([#&#8203;6608]) - sync: add `watch::Sender::same_channel` ([#&#8203;6637]) - sync: add `{Receiver,UnboundedReceiver}::{sender_strong_count,sender_weak_count}` ([#&#8203;6661]) - sync: implement `Default` for `watch::Sender` ([#&#8203;6626]) - task: implement `Clone` for `AbortHandle` ([#&#8203;6621]) - task: stabilize `consume_budget` ([#&#8203;6622]) ##### Changed - io: improve panic message of `ReadBuf::put_slice()` ([#&#8203;6629]) - io: read during write in `copy_bidirectional` and `copy` ([#&#8203;6532]) - runtime: replace `num_cpus` with `available_parallelism` ([#&#8203;6709]) - task: avoid stack overflow when passing large future to `block_on` ([#&#8203;6692]) - time: avoid traversing entries in the time wheel twice ([#&#8203;6584]) - time: support `IntoFuture` with `timeout` ([#&#8203;6666]) - macros: support `IntoFuture` with `join!` and `select!` ([#&#8203;6710]) ##### Fixed - docs: fix docsrs builds with the fs feature enabled ([#&#8203;6585]) - io: only use short-read optimization on known-to-be-compatible platforms ([#&#8203;6668]) - time: fix overflow panic when using large durations with `Interval` ([#&#8203;6612]) ##### Added (unstable) - macros: allow `unhandled_panic` behavior for `#[tokio::main]` and `#[tokio::test]` ([#&#8203;6593]) - metrics: add `spawned_tasks_count` ([#&#8203;6114]) - metrics: add `worker_park_unpark_count` ([#&#8203;6696]) - metrics: add worker thread id ([#&#8203;6695]) ##### Documented - io: update `tokio::io::stdout` documentation ([#&#8203;6674]) - macros: typo fix in `join.rs` and `try_join.rs` ([#&#8203;6641]) - runtime: fix typo in `unhandled_panic` ([#&#8203;6660]) - task: document behavior of `JoinSet::try_join_next` when all tasks are running ([#&#8203;6671]) [#&#8203;6114]: https://github.com/tokio-rs/tokio/pull/6114 [#&#8203;6154]: https://github.com/tokio-rs/tokio/pull/6154 [#&#8203;6532]: https://github.com/tokio-rs/tokio/pull/6532 [#&#8203;6584]: https://github.com/tokio-rs/tokio/pull/6584 [#&#8203;6585]: https://github.com/tokio-rs/tokio/pull/6585 [#&#8203;6593]: https://github.com/tokio-rs/tokio/pull/6593 [#&#8203;6608]: https://github.com/tokio-rs/tokio/pull/6608 [#&#8203;6612]: https://github.com/tokio-rs/tokio/pull/6612 [#&#8203;6619]: https://github.com/tokio-rs/tokio/pull/6619 [#&#8203;6621]: https://github.com/tokio-rs/tokio/pull/6621 [#&#8203;6622]: https://github.com/tokio-rs/tokio/pull/6622 [#&#8203;6626]: https://github.com/tokio-rs/tokio/pull/6626 [#&#8203;6629]: https://github.com/tokio-rs/tokio/pull/6629 [#&#8203;6635]: https://github.com/tokio-rs/tokio/pull/6635 [#&#8203;6637]: https://github.com/tokio-rs/tokio/pull/6637 [#&#8203;6641]: https://github.com/tokio-rs/tokio/pull/6641 [#&#8203;6645]: https://github.com/tokio-rs/tokio/pull/6645 [#&#8203;6660]: https://github.com/tokio-rs/tokio/pull/6660 [#&#8203;6661]: https://github.com/tokio-rs/tokio/pull/6661 [#&#8203;6663]: https://github.com/tokio-rs/tokio/pull/6663 [#&#8203;6666]: https://github.com/tokio-rs/tokio/pull/6666 [#&#8203;6667]: https://github.com/tokio-rs/tokio/pull/6667 [#&#8203;6668]: https://github.com/tokio-rs/tokio/pull/6668 [#&#8203;6671]: https://github.com/tokio-rs/tokio/pull/6671 [#&#8203;6674]: https://github.com/tokio-rs/tokio/pull/6674 [#&#8203;6692]: https://github.com/tokio-rs/tokio/pull/6692 [#&#8203;6695]: https://github.com/tokio-rs/tokio/pull/6695 [#&#8203;6696]: https://github.com/tokio-rs/tokio/pull/6696 [#&#8203;6709]: https://github.com/tokio-rs/tokio/pull/6709 [#&#8203;6710]: https://github.com/tokio-rs/tokio/pull/6710 ### [`v1.38.2`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.38.2): Tokio v1.38.2 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.38.1...tokio-1.38.2) This release fixes a soundness issue in the broadcast channel. The channel accepts values that are `Send` but `!Sync`. Previously, the channel called `clone()` on these values without synchronizing. This release fixes the channel by synchronizing calls to `.clone()` (Thanks Austin Bonander for finding and reporting the issue). ##### Fixed - sync: synchronize `clone()` call in broadcast channel ([#&#8203;7232]) [#&#8203;7232]: https://github.com/tokio-rs/tokio/pull/7232 ### [`v1.38.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.38.1): Tokio v1.38.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.38.0...tokio-1.38.1) ### 1.38.1 (July 16th, 2024) This release fixes the bug identified as ([#&#8203;6682]), which caused timers not to fire when they should. ##### Fixed - time: update `wake_up` while holding all the locks of sharded time wheels ([#&#8203;6683]) [#&#8203;6682]: https://github.com/tokio-rs/tokio/pull/6682 [#&#8203;6683]: https://github.com/tokio-rs/tokio/pull/6683 ### [`v1.38.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.38.0): Tokio v1.38.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.37.0...tokio-1.38.0) This release marks the beginning of stabilization for runtime metrics. It stabilizes `RuntimeMetrics::worker_count`. Future releases will continue to stabilize more metrics. ##### Added - fs: add `File::create_new` ([#&#8203;6573]) - io: add `copy_bidirectional_with_sizes` ([#&#8203;6500]) - io: implement `AsyncBufRead` for `Join` ([#&#8203;6449]) - net: add Apple visionOS support ([#&#8203;6465]) - net: implement `Clone` for `NamedPipeInfo` ([#&#8203;6586]) - net: support QNX OS ([#&#8203;6421]) - sync: add `Notify::notify_last` ([#&#8203;6520]) - sync: add `mpsc::Receiver::{capacity,max_capacity}` ([#&#8203;6511]) - sync: add `split` method to the semaphore permit ([#&#8203;6472], [#&#8203;6478]) - task: add `tokio::task::join_set::Builder::spawn_blocking` ([#&#8203;6578]) - wasm: support rt-multi-thread with wasm32-wasi-preview1-threads ([#&#8203;6510]) ##### Changed - macros: make `#[tokio::test]` append `#[test]` at the end of the attribute list ([#&#8203;6497]) - metrics: fix `blocking_threads` count ([#&#8203;6551]) - metrics: stabilize `RuntimeMetrics::worker_count` ([#&#8203;6556]) - runtime: move task out of the `lifo_slot` in `block_in_place` ([#&#8203;6596]) - runtime: panic if `global_queue_interval` is zero ([#&#8203;6445]) - sync: always drop message in destructor for oneshot receiver ([#&#8203;6558]) - sync: instrument `Semaphore` for task dumps ([#&#8203;6499]) - sync: use FIFO ordering when waking batches of wakers ([#&#8203;6521]) - task: make `LocalKey::get` work with Clone types ([#&#8203;6433]) - tests: update nix and mio-aio dev-dependencies ([#&#8203;6552]) - time: clean up implementation ([#&#8203;6517]) - time: lazily init timers on first poll ([#&#8203;6512]) - time: remove the `true_when` field in `TimerShared` ([#&#8203;6563]) - time: use sharding for timer implementation ([#&#8203;6534]) ##### Fixed - taskdump: allow building taskdump docs on non-unix machines ([#&#8203;6564]) - time: check for overflow in `Interval::poll_tick` ([#&#8203;6487]) - sync: fix incorrect `is_empty` on mpsc block boundaries ([#&#8203;6603]) ##### Documented - fs: rewrite file system docs ([#&#8203;6467]) - io: fix `stdin` documentation ([#&#8203;6581]) - io: fix obsolete reference in `ReadHalf::unsplit()` documentation ([#&#8203;6498]) - macros: render more comprehensible documentation for `select!` ([#&#8203;6468]) - net: add missing types to module docs ([#&#8203;6482]) - net: fix misleading `NamedPipeServer` example ([#&#8203;6590]) - sync: add examples for `SemaphorePermit`, `OwnedSemaphorePermit` ([#&#8203;6477]) - sync: document that `Barrier::wait` is not cancel safe ([#&#8203;6494]) - sync: explain relation between `watch::Sender::{subscribe,closed}` ([#&#8203;6490]) - task: clarify that you can't abort `spawn_blocking` tasks ([#&#8203;6571]) - task: fix a typo in doc of `LocalSet::run_until` ([#&#8203;6599]) - time: fix test-util requirement for pause and resume in docs ([#&#8203;6503]) [#&#8203;6421]: https://github.com/tokio-rs/tokio/pull/6421 [#&#8203;6433]: https://github.com/tokio-rs/tokio/pull/6433 [#&#8203;6445]: https://github.com/tokio-rs/tokio/pull/6445 [#&#8203;6449]: https://github.com/tokio-rs/tokio/pull/6449 [#&#8203;6465]: https://github.com/tokio-rs/tokio/pull/6465 [#&#8203;6467]: https://github.com/tokio-rs/tokio/pull/6467 [#&#8203;6468]: https://github.com/tokio-rs/tokio/pull/6468 [#&#8203;6472]: https://github.com/tokio-rs/tokio/pull/6472 [#&#8203;6477]: https://github.com/tokio-rs/tokio/pull/6477 [#&#8203;6478]: https://github.com/tokio-rs/tokio/pull/6478 [#&#8203;6482]: https://github.com/tokio-rs/tokio/pull/6482 [#&#8203;6487]: https://github.com/tokio-rs/tokio/pull/6487 [#&#8203;6490]: https://github.com/tokio-rs/tokio/pull/6490 [#&#8203;6494]: https://github.com/tokio-rs/tokio/pull/6494 [#&#8203;6497]: https://github.com/tokio-rs/tokio/pull/6497 [#&#8203;6498]: https://github.com/tokio-rs/tokio/pull/6498 [#&#8203;6499]: https://github.com/tokio-rs/tokio/pull/6499 [#&#8203;6500]: https://github.com/tokio-rs/tokio/pull/6500 [#&#8203;6503]: https://github.com/tokio-rs/tokio/pull/6503 [#&#8203;6510]: https://github.com/tokio-rs/tokio/pull/6510 [#&#8203;6511]: https://github.com/tokio-rs/tokio/pull/6511 [#&#8203;6512]: https://github.com/tokio-rs/tokio/pull/6512 [#&#8203;6517]: https://github.com/tokio-rs/tokio/pull/6517 [#&#8203;6520]: https://github.com/tokio-rs/tokio/pull/6520 [#&#8203;6521]: https://github.com/tokio-rs/tokio/pull/6521 [#&#8203;6534]: https://github.com/tokio-rs/tokio/pull/6534 [#&#8203;6551]: https://github.com/tokio-rs/tokio/pull/6551 [#&#8203;6552]: https://github.com/tokio-rs/tokio/pull/6552 [#&#8203;6556]: https://github.com/tokio-rs/tokio/pull/6556 [#&#8203;6558]: https://github.com/tokio-rs/tokio/pull/6558 [#&#8203;6563]: https://github.com/tokio-rs/tokio/pull/6563 [#&#8203;6564]: https://github.com/tokio-rs/tokio/pull/6564 [#&#8203;6571]: https://github.com/tokio-rs/tokio/pull/6571 [#&#8203;6573]: https://github.com/tokio-rs/tokio/pull/6573 [#&#8203;6578]: https://github.com/tokio-rs/tokio/pull/6578 [#&#8203;6581]: https://github.com/tokio-rs/tokio/pull/6581 [#&#8203;6586]: https://github.com/tokio-rs/tokio/pull/6586 [#&#8203;6590]: https://github.com/tokio-rs/tokio/pull/6590 [#&#8203;6596]: https://github.com/tokio-rs/tokio/pull/6596 [#&#8203;6599]: https://github.com/tokio-rs/tokio/pull/6599 [#&#8203;6603]: https://github.com/tokio-rs/tokio/pull/6603 ### [`v1.37.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.37.0): Tokio v1.37.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.36.0...tokio-1.37.0) ### 1.37.0 (March 28th, 2024) ##### Added - fs: add `set_max_buf_size` to `tokio::fs::File` ([#&#8203;6411]) - io: add `try_new` and `try_with_interest` to `AsyncFd` ([#&#8203;6345]) - sync: add `forget_permits` method to semaphore ([#&#8203;6331]) - sync: add `is_closed`, `is_empty`, and `len` to mpsc receivers ([#&#8203;6348]) - sync: add a `rwlock()` method to owned `RwLock` guards ([#&#8203;6418]) - sync: expose strong and weak counts of mpsc sender handles ([#&#8203;6405]) - sync: implement `Clone` for `watch::Sender` ([#&#8203;6388]) - task: add `TaskLocalFuture::take_value` ([#&#8203;6340]) - task: implement `FromIterator` for `JoinSet` ([#&#8203;6300]) ##### Changed - io: make `io::split` use a mutex instead of a spinlock ([#&#8203;6403]) ##### Fixed - docs: fix docsrs build without net feature ([#&#8203;6360]) - macros: allow select with only else branch ([#&#8203;6339]) - runtime: fix leaking registration entries when os registration fails ([#&#8203;6329]) ##### Documented - io: document cancel safety of `AsyncBufReadExt::fill_buf` ([#&#8203;6431]) - io: document cancel safety of `AsyncReadExt`'s primitive read functions ([#&#8203;6337]) - runtime: add doc link from `Runtime` to `#[tokio::main]` ([#&#8203;6366]) - runtime: make the `enter` example deterministic ([#&#8203;6351]) - sync: add Semaphore example for limiting the number of outgoing requests ([#&#8203;6419]) - sync: fix missing period in broadcast docs ([#&#8203;6377]) - sync: mark `mpsc::Sender::downgrade` with `#[must_use]` ([#&#8203;6326]) - sync: reorder `const_new` before `new_with` ([#&#8203;6392]) - sync: update watch channel docs ([#&#8203;6395]) - task: fix documentation links ([#&#8203;6336]) ##### Changed (unstable) - runtime: include task `Id` in taskdumps ([#&#8203;6328]) - runtime: panic if `unhandled_panic` is enabled when not supported ([#&#8203;6410]) [#&#8203;6300]: https://github.com/tokio-rs/tokio/pull/6300 [#&#8203;6326]: https://github.com/tokio-rs/tokio/pull/6326 [#&#8203;6328]: https://github.com/tokio-rs/tokio/pull/6328 [#&#8203;6329]: https://github.com/tokio-rs/tokio/pull/6329 [#&#8203;6331]: https://github.com/tokio-rs/tokio/pull/6331 [#&#8203;6336]: https://github.com/tokio-rs/tokio/pull/6336 [#&#8203;6337]: https://github.com/tokio-rs/tokio/pull/6337 [#&#8203;6339]: https://github.com/tokio-rs/tokio/pull/6339 [#&#8203;6340]: https://github.com/tokio-rs/tokio/pull/6340 [#&#8203;6345]: https://github.com/tokio-rs/tokio/pull/6345 [#&#8203;6348]: https://github.com/tokio-rs/tokio/pull/6348 [#&#8203;6351]: https://github.com/tokio-rs/tokio/pull/6351 [#&#8203;6360]: https://github.com/tokio-rs/tokio/pull/6360 [#&#8203;6366]: https://github.com/tokio-rs/tokio/pull/6366 [#&#8203;6377]: https://github.com/tokio-rs/tokio/pull/6377 [#&#8203;6388]: https://github.com/tokio-rs/tokio/pull/6388 [#&#8203;6392]: https://github.com/tokio-rs/tokio/pull/6392 [#&#8203;6395]: https://github.com/tokio-rs/tokio/pull/6395 [#&#8203;6403]: https://github.com/tokio-rs/tokio/pull/6403 [#&#8203;6405]: https://github.com/tokio-rs/tokio/pull/6405 [#&#8203;6410]: https://github.com/tokio-rs/tokio/pull/6410 [#&#8203;6411]: https://github.com/tokio-rs/tokio/pull/6411 [#&#8203;6418]: https://github.com/tokio-rs/tokio/pull/6418 [#&#8203;6419]: https://github.com/tokio-rs/tokio/pull/6419 [#&#8203;6431]: https://github.com/tokio-rs/tokio/pull/6431 ### [`v1.36.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.36.0): Tokio v1.36.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.35.1...tokio-1.36.0) ### 1.36.0 (February 2nd, 2024) ##### Added - io: add `tokio::io::Join` ([#&#8203;6220]) - io: implement `AsyncWrite` for `Empty` ([#&#8203;6235]) - net: add support for anonymous unix pipes ([#&#8203;6127]) - net: add `UnixSocket` ([#&#8203;6290]) - net: expose keepalive option on `TcpSocket` ([#&#8203;6311]) - sync: add `{Receiver,UnboundedReceiver}::poll_recv_many` ([#&#8203;6236]) - sync: add `Sender::{try_,}reserve_many` ([#&#8203;6205]) - sync: add `watch::Receiver::mark_unchanged` ([#&#8203;6252]) - task: add `JoinSet::try_join_next` ([#&#8203;6280]) ##### Changed - io: make `copy` cooperative ([#&#8203;6265]) - io: make `repeat` and `sink` cooperative ([#&#8203;6254]) - io: simplify check for empty slice ([#&#8203;6293]) - process: use pidfd on Linux when available ([#&#8203;6152]) - sync: use AtomicBool in broadcast channel future ([#&#8203;6298]) ##### Documented - io: clarify `clear_ready` docs ([#&#8203;6304]) - net: document that `*Fd` traits on `TcpSocket` are unix-only ([#&#8203;6294]) - sync: document FIFO behavior of `tokio::sync::Mutex` ([#&#8203;6279]) - chore: typographic improvements ([#&#8203;6262]) - runtime: remove obsolete comment ([#&#8203;6303]) - task: fix typo ([#&#8203;6261]) [#&#8203;6220]: https://github.com/tokio-rs/tokio/pull/6220 [#&#8203;6235]: https://github.com/tokio-rs/tokio/pull/6235 [#&#8203;6127]: https://github.com/tokio-rs/tokio/pull/6127 [#&#8203;6290]: https://github.com/tokio-rs/tokio/pull/6290 [#&#8203;6311]: https://github.com/tokio-rs/tokio/pull/6311 [#&#8203;6236]: https://github.com/tokio-rs/tokio/pull/6236 [#&#8203;6205]: https://github.com/tokio-rs/tokio/pull/6205 [#&#8203;6252]: https://github.com/tokio-rs/tokio/pull/6252 [#&#8203;6280]: https://github.com/tokio-rs/tokio/pull/6280 [#&#8203;6265]: https://github.com/tokio-rs/tokio/pull/6265 [#&#8203;6254]: https://github.com/tokio-rs/tokio/pull/6254 [#&#8203;6293]: https://github.com/tokio-rs/tokio/pull/6293 [#&#8203;6238]: https://github.com/tokio-rs/tokio/pull/6238 [#&#8203;6152]: https://github.com/tokio-rs/tokio/pull/6152 [#&#8203;6298]: https://github.com/tokio-rs/tokio/pull/6298 [#&#8203;6262]: https://github.com/tokio-rs/tokio/pull/6262 [#&#8203;6303]: https://github.com/tokio-rs/tokio/pull/6303 [#&#8203;6261]: https://github.com/tokio-rs/tokio/pull/6261 [#&#8203;6304]: https://github.com/tokio-rs/tokio/pull/6304 [#&#8203;6294]: https://github.com/tokio-rs/tokio/pull/6294 [#&#8203;6279]: https://github.com/tokio-rs/tokio/pull/6279 ### [`v1.35.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.35.1): Tokio v1.35.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.35.0...tokio-1.35.1) ### 1.35.1 (December 19, 2023) This is a forward part of a change that was backported to 1.25.3. ##### Fixed - io: add budgeting to `tokio::runtime::io::registration::async_io` ([#&#8203;6221]) [#&#8203;6221]: https://github.com/tokio-rs/tokio/pull/6221 ### [`v1.35.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.35.0): Tokio v1.35.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.34.0...tokio-1.35.0) ### 1.35.0 (December 8th, 2023) ##### Added - net: add Apple watchOS support ([#&#8203;6176]) ##### Changed - io: drop the `Sized` requirements from `AsyncReadExt.read_buf` ([#&#8203;6169]) - runtime: make `Runtime` unwind safe ([#&#8203;6189]) - runtime: reduce the lock contention in task spawn ([#&#8203;6001]) - tokio: update nix dependency to 0.27.1 ([#&#8203;6190]) ##### Fixed - chore: make `--cfg docsrs` work without net feature ([#&#8203;6166]) - chore: use relaxed load for `unsync_load` on miri ([#&#8203;6179]) - runtime: handle missing context on wake ([#&#8203;6148]) - taskdump: fix taskdump cargo config example ([#&#8203;6150]) - taskdump: skip notified tasks during taskdumps ([#&#8203;6194]) - tracing: avoid creating resource spans with current parent, use a None parent instead ([#&#8203;6107]) - tracing: make task span explicit root ([#&#8203;6158]) ##### Documented - io: flush in `AsyncWriteExt` examples ([#&#8203;6149]) - runtime: document fairness guarantees and current behavior ([#&#8203;6145]) - task: document cancel safety of `LocalSet::run_until` ([#&#8203;6147]) [#&#8203;6001]: https://github.com/tokio-rs/tokio/pull/6001 [#&#8203;6107]: https://github.com/tokio-rs/tokio/pull/6107 [#&#8203;6144]: https://github.com/tokio-rs/tokio/pull/6144 [#&#8203;6145]: https://github.com/tokio-rs/tokio/pull/6145 [#&#8203;6147]: https://github.com/tokio-rs/tokio/pull/6147 [#&#8203;6148]: https://github.com/tokio-rs/tokio/pull/6148 [#&#8203;6149]: https://github.com/tokio-rs/tokio/pull/6149 [#&#8203;6150]: https://github.com/tokio-rs/tokio/pull/6150 [#&#8203;6158]: https://github.com/tokio-rs/tokio/pull/6158 [#&#8203;6166]: https://github.com/tokio-rs/tokio/pull/6166 [#&#8203;6169]: https://github.com/tokio-rs/tokio/pull/6169 [#&#8203;6176]: https://github.com/tokio-rs/tokio/pull/6176 [#&#8203;6179]: https://github.com/tokio-rs/tokio/pull/6179 [#&#8203;6189]: https://github.com/tokio-rs/tokio/pull/6189 [#&#8203;6190]: https://github.com/tokio-rs/tokio/pull/6190 [#&#8203;6194]: https://github.com/tokio-rs/tokio/pull/6194 ### [`v1.34.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.34.0): Tokio v1.34.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.33.0...tokio-1.34.0) ##### Fixed - io: allow `clear_readiness` after io driver shutdown ([#&#8203;6067]) - io: fix integer overflow in `take` ([#&#8203;6080]) - io: fix I/O resource hang ([#&#8203;6134]) - sync: fix `broadcast::channel` link ([#&#8203;6100]) ##### Changed - macros: use `::core` qualified imports instead of `::std` inside `tokio::test` macro ([#&#8203;5973]) ##### Added - fs: update cfg attr in `fs::read_dir` to include `aix` ([#&#8203;6075]) - sync: add `mpsc::Receiver::recv_many` ([#&#8203;6010]) - tokio: added vita target support ([#&#8203;6094]) [#&#8203;5973]: https://github.com/tokio-rs/tokio/pull/5973 [#&#8203;6067]: https://github.com/tokio-rs/tokio/pull/6067 [#&#8203;6080]: https://github.com/tokio-rs/tokio/pull/6080 [#&#8203;6134]: https://github.com/tokio-rs/tokio/pull/6134 [#&#8203;6100]: https://github.com/tokio-rs/tokio/pull/6100 [#&#8203;6075]: https://github.com/tokio-rs/tokio/pull/6075 [#&#8203;6010]: https://github.com/tokio-rs/tokio/pull/6010 [#&#8203;6094]: https://github.com/tokio-rs/tokio/pull/6094 ### [`v1.33.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.33.0): Tokio v1.33.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.32.1...tokio-1.33.0) ### 1.33.0 (October 9, 2023) ##### Fixed - io: mark `Interest::add` with `#[must_use]` ([#&#8203;6037]) - runtime: fix cache line size for RISC-V ([#&#8203;5994]) - sync: prevent lock poisoning in `watch::Receiver::wait_for` ([#&#8203;6021]) - task: fix `spawn_local` source location ([#&#8203;5984]) ##### Changed - sync: use Acquire/Release orderings instead of SeqCst in `watch` ([#&#8203;6018]) ##### Added - fs: add vectored writes to `tokio::fs::File` ([#&#8203;5958]) - io: add `Interest::remove` method ([#&#8203;5906]) - io: add vectored writes to `DuplexStream` ([#&#8203;5985]) - net: add Apple tvOS support ([#&#8203;6045]) - sync: add `?Sized` bound to `{MutexGuard,OwnedMutexGuard}::map` ([#&#8203;5997]) - sync: add `watch::Receiver::mark_unseen` ([#&#8203;5962], [#&#8203;6014], [#&#8203;6017]) - sync: add `watch::Sender::new` ([#&#8203;5998]) - sync: add const fn `OnceCell::from_value` ([#&#8203;5903]) ##### Removed - remove unused `stats` feature ([#&#8203;5952]) ##### Documented - add missing backticks in code examples ([#&#8203;5938], [#&#8203;6056]) - fix typos ([#&#8203;5988], [#&#8203;6030]) - process: document that `Child::wait` is cancel safe ([#&#8203;5977]) - sync: add examples for `Semaphore` ([#&#8203;5939], [#&#8203;5956], [#&#8203;5978], [#&#8203;6031], [#&#8203;6032], [#&#8203;6050]) - sync: document that `broadcast` capacity is a lower bound ([#&#8203;6042]) - sync: document that `const_new` is not instrumented ([#&#8203;6002]) - sync: improve cancel-safety documentation for `mpsc::Sender::send` ([#&#8203;5947]) - sync: improve docs for `watch` channel ([#&#8203;5954]) - taskdump: render taskdump documentation on docs.rs ([#&#8203;5972]) ##### Unstable - taskdump: fix potential deadlock ([#&#8203;6036]) [#&#8203;5903]: https://github.com/tokio-rs/tokio/pull/5903 [#&#8203;5906]: https://github.com/tokio-rs/tokio/pull/5906 [#&#8203;5938]: https://github.com/tokio-rs/tokio/pull/5938 [#&#8203;5939]: https://github.com/tokio-rs/tokio/pull/5939 [#&#8203;5947]: https://github.com/tokio-rs/tokio/pull/5947 [#&#8203;5952]: https://github.com/tokio-rs/tokio/pull/5952 [#&#8203;5954]: https://github.com/tokio-rs/tokio/pull/5954 [#&#8203;5956]: https://github.com/tokio-rs/tokio/pull/5956 [#&#8203;5958]: https://github.com/tokio-rs/tokio/pull/5958 [#&#8203;5960]: https://github.com/tokio-rs/tokio/pull/5960 [#&#8203;5962]: https://github.com/tokio-rs/tokio/pull/5962 [#&#8203;5971]: https://github.com/tokio-rs/tokio/pull/5971 [#&#8203;5972]: https://github.com/tokio-rs/tokio/pull/5972 [#&#8203;5977]: https://github.com/tokio-rs/tokio/pull/5977 [#&#8203;5978]: https://github.com/tokio-rs/tokio/pull/5978 [#&#8203;5984]: https://github.com/tokio-rs/tokio/pull/5984 [#&#8203;5985]: https://github.com/tokio-rs/tokio/pull/5985 [#&#8203;5988]: https://github.com/tokio-rs/tokio/pull/5988 [#&#8203;5994]: https://github.com/tokio-rs/tokio/pull/5994 [#&#8203;5997]: https://github.com/tokio-rs/tokio/pull/5997 [#&#8203;5998]: https://github.com/tokio-rs/tokio/pull/5998 [#&#8203;6002]: https://github.com/tokio-rs/tokio/pull/6002 [#&#8203;6014]: https://github.com/tokio-rs/tokio/pull/6014 [#&#8203;6017]: https://github.com/tokio-rs/tokio/pull/6017 [#&#8203;6018]: https://github.com/tokio-rs/tokio/pull/6018 [#&#8203;6021]: https://github.com/tokio-rs/tokio/pull/6021 [#&#8203;6030]: https://github.com/tokio-rs/tokio/pull/6030 [#&#8203;6031]: https://github.com/tokio-rs/tokio/pull/6031 [#&#8203;6032]: https://github.com/tokio-rs/tokio/pull/6032 [#&#8203;6036]: https://github.com/tokio-rs/tokio/pull/6036 [#&#8203;6037]: https://github.com/tokio-rs/tokio/pull/6037 [#&#8203;6042]: https://github.com/tokio-rs/tokio/pull/6042 [#&#8203;6045]: https://github.com/tokio-rs/tokio/pull/6045 [#&#8203;6050]: https://github.com/tokio-rs/tokio/pull/6050 [#&#8203;6056]: https://github.com/tokio-rs/tokio/pull/6056 [#&#8203;6058]: https://github.com/tokio-rs/tokio/pull/6058 ### [`v1.32.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.32.1): Tokio v1.32.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.32.0...tokio-1.32.1) ### 1.32.1 (December 19, 2023) This is a forward part of a change that was backported to 1.25.3. ##### Fixed - io: add budgeting to `tokio::runtime::io::registration::async_io` ([#&#8203;6221]) [#&#8203;6221]: https://github.com/tokio-rs/tokio/pull/6221 ### [`v1.32.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.32.0): Tokio v1.32.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.31.0...tokio-1.32.0) ##### Fixed - sync: fix potential quadratic behavior in `broadcast::Receiver` ([#&#8203;5925]) ##### Added - process: stabilize `Command::raw_arg` ([#&#8203;5930]) - io: enable awaiting error readiness ([#&#8203;5781]) ##### Unstable - rt(alt): improve the scalability of alt runtime as the number of cores grows ([#&#8203;5935]) [#&#8203;5925]: https://github.com/tokio-rs/tokio/pull/5925 [#&#8203;5930]: https://github.com/tokio-rs/tokio/pull/5930 [#&#8203;5781]: https://github.com/tokio-rs/tokio/pull/5781 [#&#8203;5935]: https://github.com/tokio-rs/tokio/pull/5935 ### [`v1.31.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.31.0): Tokio v1.31.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.30.0...tokio-1.31.0) ##### Fixed - io: delegate `WriteHalf::poll_write_vectored` ([#&#8203;5914]) ##### Unstable - rt(unstable): fix memory leak in unstable next-gen scheduler prototype ([#&#8203;5911]) - rt: expose mean task poll time metric ([#&#8203;5927]) [#&#8203;5914]: https://github.com/tokio-rs/tokio/pull/5914 [#&#8203;5911]: https://github.com/tokio-rs/tokio/pull/5911 [#&#8203;5927]: https://github.com/tokio-rs/tokio/pull/5927 ### [`v1.30.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.30.0): Tokio v1.30.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.29.1...tokio-1.30.0) ### 1.30.0 (August 9, 2023) This release bumps the MSRV of Tokio to 1.63. ([#&#8203;5887]) ##### Changed - tokio: reduce LLVM code generation ([#&#8203;5859]) - io: support `--cfg mio_unsupported_force_poll_poll` flag ([#&#8203;5881]) - sync: make `const_new` methods always available ([#&#8203;5885]) - sync: avoid false sharing in mpsc channel ([#&#8203;5829]) - rt: pop at least one task from inject queue ([#&#8203;5908]) ##### Added - sync: add `broadcast::Sender::new` ([#&#8203;5824]) - net: implement `UCred` for espidf ([#&#8203;5868]) - fs: add `File::options()` ([#&#8203;5869]) - time: implement extra reset variants for `Interval` ([#&#8203;5878]) - process: add `{ChildStd*}::into_owned_{fd, handle}` ([#&#8203;5899]) ##### Removed - tokio: removed unused `tokio_*` cfgs ([#&#8203;5890]) - remove build script to speed up compilation ([#&#8203;5887]) ##### Documented - sync: mention lagging in docs for `broadcast::send` ([#&#8203;5820]) - runtime: expand on sharing runtime docs ([#&#8203;5858]) - io: use vec in example for `AsyncReadExt::read_exact` ([#&#8203;5863]) - time: mark `Sleep` as `!Unpin` in docs ([#&#8203;5916]) - process: fix `raw_arg` not showing up in docs ([#&#8203;5865]) ##### Unstable - rt: add runtime ID ([#&#8203;5864]) - rt: initial implementation of new threaded runtime ([#&#8203;5823]) [#&#8203;5820]: https://github.com/tokio-rs/tokio/pull/5820 [#&#8203;5823]: https://github.com/tokio-rs/tokio/pull/5823 [#&#8203;5824]: https://github.com/tokio-rs/tokio/pull/5824 [#&#8203;5829]: https://github.com/tokio-rs/tokio/pull/5829 [#&#8203;5858]: https://github.com/tokio-rs/tokio/pull/5858 [#&#8203;5859]: https://github.com/tokio-rs/tokio/pull/5859 [#&#8203;5863]: https://github.com/tokio-rs/tokio/pull/5863 [#&#8203;5864]: https://github.com/tokio-rs/tokio/pull/5864 [#&#8203;5865]: https://github.com/tokio-rs/tokio/pull/5865 [#&#8203;5868]: https://github.com/tokio-rs/tokio/pull/5868 [#&#8203;5869]: https://github.com/tokio-rs/tokio/pull/5869 [#&#8203;5878]: https://github.com/tokio-rs/tokio/pull/5878 [#&#8203;5881]: https://github.com/tokio-rs/tokio/pull/5881 [#&#8203;5885]: https://github.com/tokio-rs/tokio/pull/5885 [#&#8203;5887]: https://github.com/tokio-rs/tokio/pull/5887 [#&#8203;5890]: https://github.com/tokio-rs/tokio/pull/5890 [#&#8203;5899]: https://github.com/tokio-rs/tokio/pull/5899 [#&#8203;5908]: https://github.com/tokio-rs/tokio/pull/5908 [#&#8203;5916]: https://github.com/tokio-rs/tokio/pull/5916 ### [`v1.29.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.29.1): Tokio v1.29.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.29.0...tokio-1.29.1) ##### Fixed - rt: fix nesting two `block_in_place` with a `block_on` between ([#&#8203;5837]) [#&#8203;5837]: https://github.com/tokio-rs/tokio/pull/5837 ### [`v1.29.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.29.0): Tokio v1.29.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.28.2...tokio-1.29.0) Technically a breaking change, the `Send` implementation is removed from `runtime::EnterGuard`. This change fixes a bug and should not impact most users. ##### Breaking - rt: `EnterGuard` should not be `Send` ([#&#8203;5766]) ##### Fixed - fs: reduce blocking ops in `fs::read_dir` ([#&#8203;5653]) - rt: fix possible starvation ([#&#8203;5686], [#&#8203;5712]) - rt: fix stacked borrows issue in `JoinSet` ([#&#8203;5693]) - rt: panic if `EnterGuard` dropped incorrect order ([#&#8203;5772]) - time: do not overflow to signal value ([#&#8203;5710]) - fs: wait for in-flight ops before cloning `File` ([#&#8203;5803]) ##### Changed - rt: reduce time to poll tasks scheduled from outside the runtime ([#&#8203;5705], [#&#8203;5720]) ##### Added - net: add uds doc alias for unix sockets ([#&#8203;5659]) - rt: add metric for number of tasks ([#&#8203;5628]) - sync: implement more traits for channel errors ([#&#8203;5666]) - net: add nodelay methods on TcpSocket ([#&#8203;5672]) - sync: add `broadcast::Receiver::blocking_recv` ([#&#8203;5690]) - process: add `raw_arg` method to `Command` ([#&#8203;5704]) - io: support PRIORITY epoll events ([#&#8203;5566]) - task: add `JoinSet::poll_join_next` ([#&#8203;5721]) - net: add support for Redox OS ([#&#8203;5790]) ##### Unstable - rt: add the ability to dump task backtraces ([#&#8203;5608], [#&#8203;5676], [#&#8203;5708], [#&#8203;5717]) - rt: instrument task poll times with a histogram ([#&#8203;5685]) [#&#8203;5766]: https://github.com/tokio-rs/tokio/pull/5766 [#&#8203;5653]: https://github.com/tokio-rs/tokio/pull/5653 [#&#8203;5686]: https://github.com/tokio-rs/tokio/pull/5686 [#&#8203;5712]: https://github.com/tokio-rs/tokio/pull/5712 [#&#8203;5693]: https://github.com/tokio-rs/tokio/pull/5693 [#&#8203;5772]: https://github.com/tokio-rs/tokio/pull/5772 [#&#8203;5710]: https://github.com/tokio-rs/tokio/pull/5710 [#&#8203;5803]: https://github.com/tokio-rs/tokio/pull/5803 [#&#8203;5705]: https://github.com/tokio-rs/tokio/pull/5705 [#&#8203;5720]: https://github.com/tokio-rs/tokio/pull/5720 [#&#8203;5659]: https://github.com/tokio-rs/tokio/pull/5659 [#&#8203;5628]: https://github.com/tokio-rs/tokio/pull/5628 [#&#8203;5666]: https://github.com/tokio-rs/tokio/pull/5666 [#&#8203;5672]: https://github.com/tokio-rs/tokio/pull/5672 [#&#8203;5690]: https://github.com/tokio-rs/tokio/pull/5690 [#&#8203;5704]: https://github.com/tokio-rs/tokio/pull/5704 [#&#8203;5566]: https://github.com/tokio-rs/tokio/pull/5566 [#&#8203;5721]: https://github.com/tokio-rs/tokio/pull/5721 [#&#8203;5790]: https://github.com/tokio-rs/tokio/pull/5790 [#&#8203;5608]: https://github.com/tokio-rs/tokio/pull/5608 [#&#8203;5676]: https://github.com/tokio-rs/tokio/pull/5676 [#&#8203;5708]: https://github.com/tokio-rs/tokio/pull/5708 [#&#8203;5717]: https://github.com/tokio-rs/tokio/pull/5717 [#&#8203;5685]: https://github.com/tokio-rs/tokio/pull/5685 ### [`v1.28.2`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.28.2): Tokio v1.28.2 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.28.1...tokio-1.28.2) ### 1.28.2 (May 28, 2023) Forward ports 1.18.6 changes. ##### Fixed - deps: disable default features for mio ([#&#8203;5728]) [#&#8203;5728]: https://github.com/tokio-rs/tokio/pull/5728 ### [`v1.28.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.28.1): Tokio v1.28.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.28.0...tokio-1.28.1) ### 1.28.1 (May 10th, 2023) This release fixes a mistake in the build script that makes `AsFd` implementations unavailable on Rust 1.63. ([#&#8203;5677]) [#&#8203;5677]: https://github.com/tokio-rs/tokio/pull/5677 ### [`v1.28.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.28.0): Tokio v1.28.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.27.0...tokio-1.28.0) ### 1.28.0 (April 25th, 2023) ##### Added - io: add `AsyncFd::async_io` ([#&#8203;5542]) - io: impl BufMut for ReadBuf ([#&#8203;5590]) - net: add `recv_buf` for `UdpSocket` and `UnixDatagram` ([#&#8203;5583]) - sync: add `OwnedSemaphorePermit::semaphore` ([#&#8203;5618]) - sync: add `same_channel` to broadcast channel ([#&#8203;5607]) - sync: add `watch::Receiver::wait_for` ([#&#8203;5611]) - task: add `JoinSet::spawn_blocking` and `JoinSet::spawn_blocking_on` ([#&#8203;5612]) ##### Changed - deps: update windows-sys to 0.48 ([#&#8203;5591]) - io: make `read_to_end` not grow unnecessarily ([#&#8203;5610]) - macros: make entrypoints more efficient ([#&#8203;5621]) - sync: improve Debug impl for `RwLock` ([#&#8203;5647]) - sync: reduce contention in `Notify` ([#&#8203;5503]) ##### Fixed - net: support `get_peer_cred` on AIX ([#&#8203;5065]) - sync: avoid deadlocks in `broadcast` with custom wakers ([#&#8203;5578]) ##### Documented - sync: fix typo in `Semaphore::MAX_PERMITS` ([#&#8203;5645]) - sync: fix typo in `tokio::sync::watch::Sender` docs ([#&#8203;5587]) [#&#8203;5065]: https://github.com/tokio-rs/tokio/pull/5065 [#&#8203;5503]: https://github.com/tokio-rs/tokio/pull/5503 [#&#8203;5542]: https://github.com/tokio-rs/tokio/pull/5542 [#&#8203;5578]: https://github.com/tokio-rs/tokio/pull/5578 [#&#8203;5583]: https://github.com/tokio-rs/tokio/pull/5583 [#&#8203;5587]: https://github.com/tokio-rs/tokio/pull/5587 [#&#8203;5590]: https://github.com/tokio-rs/tokio/pull/5590 [#&#8203;5591]: https://github.com/tokio-rs/tokio/pull/5591 [#&#8203;5607]: https://github.com/tokio-rs/tokio/pull/5607 [#&#8203;5610]: https://github.com/tokio-rs/tokio/pull/5610 [#&#8203;5611]: https://github.com/tokio-rs/tokio/pull/5611 [#&#8203;5612]: https://github.com/tokio-rs/tokio/pull/5612 [#&#8203;5618]: https://github.com/tokio-rs/tokio/pull/5618 [#&#8203;5621]: https://github.com/tokio-rs/tokio/pull/5621 [#&#8203;5645]: https://github.com/tokio-rs/tokio/pull/5645 [#&#8203;5647]: https://github.com/tokio-rs/tokio/pull/5647 ### [`v1.27.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.27.0): Tokio v1.27.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.26.0...tokio-1.27.0) ### 1.27.0 (March 27th, 2023) This release bumps the MSRV of Tokio to 1.56. ([#&#8203;5559]) ##### Added - io: add `async_io` helper method to sockets ([#&#8203;5512]) - io: add implementations of `AsFd`/`AsHandle`/`AsSocket` ([#&#8203;5514], [#&#8203;5540]) - net: add `UdpSocket::peek_sender()` ([#&#8203;5520]) - sync: add `RwLockWriteGuard::{downgrade_map, try_downgrade_map}` ([#&#8203;5527]) - task: add `JoinHandle::abort_handle` ([#&#8203;5543]) ##### Changed - io: use `memchr` from `libc` ([#&#8203;5558]) - macros: accept path as crate rename in `#[tokio::main]` ([#&#8203;5557]) - macros: update to syn 2.0.0 ([#&#8203;5572]) - time: don't register for a wakeup when `Interval` returns `Ready` ([#&#8203;5553]) ##### Fixed - fs: fuse std iterator in `ReadDir` ([#&#8203;5555]) - tracing: fix `spawn_blocking` location fields ([#&#8203;5573]) - time: clean up redundant check in `Wheel::poll()` ([#&#8203;5574]) ##### Documented - macros: define cancellation safety ([#&#8203;5525]) - io: add details to docs of `tokio::io::copy[_buf]` ([#&#8203;5575]) - io: refer to `ReaderStream` and `StreamReader` in module docs ([#&#8203;5576]) [#&#8203;5512]: https://github.com/tokio-rs/tokio/pull/5512 [#&#8203;5514]: https://github.com/tokio-rs/tokio/pull/5514 [#&#8203;5520]: https://github.com/tokio-rs/tokio/pull/5520 [#&#8203;5525]: https://github.com/tokio-rs/tokio/pull/5525 [#&#8203;5527]: https://github.com/tokio-rs/tokio/pull/5527 [#&#8203;5540]: https://github.com/tokio-rs/tokio/pull/5540 [#&#8203;5543]: https://github.com/tokio-rs/tokio/pull/5543 [#&#8203;5553]: https://github.com/tokio-rs/tokio/pull/5553 [#&#8203;5555]: https://github.com/tokio-rs/tokio/pull/5555 [#&#8203;5557]: https://github.com/tokio-rs/tokio/pull/5557 [#&#8203;5558]: https://github.com/tokio-rs/tokio/pull/5558 [#&#8203;5559]: https://github.com/tokio-rs/tokio/pull/5559 [#&#8203;5572]: https://github.com/tokio-rs/tokio/pull/5572 [#&#8203;5573]: https://github.com/tokio-rs/tokio/pull/5573 [#&#8203;5574]: https://github.com/tokio-rs/tokio/pull/5574 [#&#8203;5575]: https://github.com/tokio-rs/tokio/pull/5575 [#&#8203;5576]: https://github.com/tokio-rs/tokio/pull/5576 ### [`v1.26.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.26.0): Tokio v1.26.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.25.3...tokio-1.26.0) ##### Fixed - macros: fix empty `join!` and `try_join!` ([https://github.com/tokio-rs/tokio/pull/5504]) - sync: don't leak tracing spans in mutex guards ([https://github.com/tokio-rs/tokio/pull/5469]) - sync: drop wakers after unlocking the mutex in Notify ([https://github.com/tokio-rs/tokio/pull/5471]) - sync: drop wakers outside lock in semaphore ([https://github.com/tokio-rs/tokio/pull/5475]) ##### Added - fs: add `fs::try_exists` ([https://github.com/tokio-rs/tokio/pull/4299]) - net: add types for named unix pipes ([https://github.com/tokio-rs/tokio/pull/5351]) - sync: add `MappedOwnedMutexGuard` ([https://github.com/tokio-rs/tokio/pull/5474]) ##### Changed - chore: update windows-sys to 0.45 ([https://github.com/tokio-rs/tokio/pull/5386]) - net: use Message Read Mode for named pipes ([https://github.com/tokio-rs/tokio/pull/5350]) - sync: mark lock guards with `#[clippy::has_significant_drop]` ([https://github.com/tokio-rs/tokio/pull/5422]) - sync: reduce contention in watch channel ([https://github.com/tokio-rs/tokio/pull/5464]) - time: remove cache padding in timer entries ([https://github.com/tokio-rs/tokio/pull/5468]) - time: Improve `Instant::now()` perf with test-util ([https://github.com/tokio-rs/tokio/pull/5513]) ##### Internal Changes - io: use `poll_fn` in `copy_bidirectional` ([https://github.com/tokio-rs/tokio/pull/5486]) - net: refactor named pipe builders to not use bitfields ([https://github.com/tokio-rs/tokio/pull/5477]) - rt: remove Arc from Clock ([https://github.com/tokio-rs/tokio/pull/5434]) - sync: make `notify_waiters` calls atomic ([https://github.com/tokio-rs/tokio/pull/5458]) - time: don't store deadline twice in sleep entries ([https://github.com/tokio-rs/tokio/pull/5410]) ##### Unstable - metrics: add a new metric for budget exhaustion yields ([https://github.com/tokio-rs/tokio/pull/5517]) ##### Documented - io: improve AsyncFd example ([https://github.com/tokio-rs/tokio/pull/5481]) - runtime: document the nature of the main future ([https://github.com/tokio-rs/tokio/pull/5494]) - runtime: remove extra period in docs ([https://github.com/tokio-rs/tokio/pull/5511]) - signal: updated Documentation for Signals ([https://github.com/tokio-rs/tokio/pull/5459]) - sync: add doc aliases for `blocking_*` methods ([https://github.com/tokio-rs/tokio/pull/5448]) - sync: fix docs for Send/Sync bounds in broadcast ([https://github.com/tokio-rs/tokio/pull/5480]) - sync: document drop behavior for channels ([https://github.com/tokio-rs/tokio/pull/5497]) - task: clarify what happens to spawned work during runtime shutdown ([https://github.com/tokio-rs/tokio/pull/5394]) - task: clarify `process::Command` docs ([https://github.com/tokio-rs/tokio/pull/5413]) - task: fix wording with 'unsend' ([https://github.com/tokio-rs/tokio/pull/5452]) - time: document immediate completion guarantee for timeouts ([https://github.com/tokio-rs/tokio/pull/5509]) - tokio: document supported platforms ([https://github.com/tokio-rs/tokio/pull/5483]) [https://github.com/tokio-rs/tokio/pull/4299]: https://github.com/tokio-rs/tokio/pull/4299 [https://github.com/tokio-rs/tokio/pull/5350]: https://github.com/tokio-rs/tokio/pull/5350 [https://github.com/tokio-rs/tokio/pull/5351]: https://github.com/tokio-rs/tokio/pull/5351 [https://github.com/tokio-rs/tokio/pull/5386]: https://github.com/tokio-rs/tokio/pull/5386 [https://github.com/tokio-rs/tokio/pull/5394]: https://github.com/tokio-rs/tokio/pull/5394 [https://github.com/tokio-rs/tokio/pull/5410]: https://github.com/tokio-rs/tokio/pull/5410 [https://github.com/tokio-rs/tokio/pull/5413]: https://github.com/tokio-rs/tokio/pull/5413 [https://github.com/tokio-rs/tokio/pull/5422]: https://github.com/tokio-rs/tokio/pull/5422 [https://github.com/tokio-rs/tokio/pull/5434]: https://github.com/tokio-rs/tokio/pull/5434 [https://github.com/tokio-rs/tokio/pull/5448]: https://github.com/tokio-rs/tokio/pull/5448 [https://github.com/tokio-rs/tokio/pull/5452]: https://github.com/tokio-rs/tokio/pull/5452 [https://github.com/tokio-rs/tokio/pull/5458]: https://github.com/tokio-rs/tokio/pull/5458 [https://github.com/tokio-rs/tokio/pull/5459]: https://github.com/tokio-rs/tokio/pull/5459 [https://github.com/tokio-rs/tokio/pull/5464]: https://github.com/tokio-rs/tokio/pull/5464 [https://github.com/tokio-rs/tokio/pull/5468]: https://github.com/tokio-rs/tokio/pull/5468 [https://github.com/tokio-rs/tokio/pull/5469]: https://github.com/tokio-rs/tokio/pull/5469 [https://github.com/tokio-rs/tokio/pull/5471]: https://github.com/tokio-rs/tokio/pull/5471 [https://github.com/tokio-rs/tokio/pull/5474]: https://github.com/tokio-rs/tokio/pull/5474 [https://github.com/tokio-rs/tokio/pull/5475]: https://github.com/tokio-rs/tokio/pull/5475 [https://github.com/tokio-rs/tokio/pull/5477]: https://github.com/tokio-rs/tokio/pull/5477 [https://github.com/tokio-rs/tokio/pull/5480]: https://github.com/tokio-rs/tokio/pull/5480 [https://github.com/tokio-rs/tokio/pull/5481]: https://github.com/tokio-rs/tokio/pull/5481 [https://github.com/tokio-rs/tokio/pull/5483]: https://github.com/tokio-rs/tokio/pull/5483 [https://github.com/tokio-rs/tokio/pull/5486]: https://github.com/tokio-rs/tokio/pull/5486 [https://github.com/tokio-rs/tokio/pull/5494]: https://github.com/tokio-rs/tokio/pull/5494 [https://github.com/tokio-rs/tokio/pull/5497]: https://github.com/tokio-rs/tokio/pull/5497 [https://github.com/tokio-rs/tokio/pull/5504]: https://github.com/tokio-rs/tokio/pull/5504 [https://github.com/tokio-rs/tokio/pull/5509]: https://github.com/tokio-rs/tokio/pull/5509 [https://github.com/tokio-rs/tokio/pull/5511]: https://github.com/tokio-rs/tokio/pull/5511 [https://github.com/tokio-rs/tokio/pull/5513]: https://github.com/tokio-rs/tokio/pull/5513 [https://github.com/tokio-rs/tokio/pull/5517]: https://github.com/tokio-rs/tokio/pull/5517 ### [`v1.25.3`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.25.3): Tokio v1.25.3 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.25.2...tokio-1.25.3) ### 1.25.3 (December 17th, 2023) ##### Fixed - io: add budgeting to `tokio::runtime::io::registration::async_io` ([#&#8203;6221]) [#&#8203;6221]: https://github.com/tokio-rs/tokio/pull/6221 ### [`v1.25.2`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.25.2): Tokio v1.25.2 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.25.1...tokio-1.25.2) ### 1.25.2 (September 22, 2023) Forward ports 1.20.6 changes. ##### Changed - io: use `memchr` from `libc` ([#&#8203;5960]) [#&#8203;5960]: https://github.com/tokio-rs/tokio/pull/5960 ### [`v1.25.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.25.1): Tokio v1.25.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.25.0...tokio-1.25.1) ### 1.25.1 (May 28, 2023) Forward ports 1.18.6 changes. ##### Fixed - deps: disable default features for mio ([#&#8203;5728]) [#&#8203;5728]: https://github.com/tokio-rs/tokio/pull/5728 ### [`v1.25.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.25.0): Tokio v1.25.0 ### 1.25.0 (January 28, 2023) ##### Fixed - rt: fix runtime metrics reporting ([#&#8203;5330]) ##### Added - sync: add `broadcast::Sender::len` ([#&#8203;5343]) ##### Changed - fs: increase maximum read buffer size to 2MiB ([#&#8203;5397]) [#&#8203;5330]: https://github.com/tokio-rs/tokio/pull/5330 [#&#8203;5343]: https://github.com/tokio-rs/tokio/pull/5343 [#&#8203;5397]: https://github.com/tokio-rs/tokio/pull/5397 ### [`v1.24.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.24.1): Tokio v1.24.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.24.0...tokio-1.24.1) This release fixes a compilation failure on targets without `AtomicU64` when using rustc older than 1.63. ([#&#8203;5356]) [#&#8203;5356]: https://github.com/tokio-rs/tokio/pull/5356 ### [`v1.24.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.24.0): Tokio v1.24.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.23.1...tokio-1.24.0) The highlight of this release is the reduction of lock contention for all I/O operations ([#&#8203;5300](https://github.com/tokio-rs/tokio/issues/5300)). We have received reports of up to a 20% improvement in CPU utilization and increased throughput for real-world I/O heavy applications. ##### Fixed - rt: improve native `AtomicU64` support detection ([#&#8203;5284]) ##### Added - rt: add configuration option for max number of I/O events polled from the OS per tick ([#&#8203;5186]) - rt: add an environment variable for configuring the default number of worker threads per runtime instance ([#&#8203;4250]) ##### Changed - sync: reduce MPSC channel stack usage ([#&#8203;5294]) - io: reduce lock contention in I/O operations ([#&#8203;5300]) - fs: speed up `read_dir()` by chunking operations ([#&#8203;5309]) - rt: use internal `ThreadId` implementation ([#&#8203;5329]) - test: don't auto-advance time when a `spawn_blocking` task is running ([#&#8203;5115]) [#&#8203;5186]: https://github.com/tokio-rs/tokio/pull/5186 [#&#8203;5294]: https://github.com/tokio-rs/tokio/pull/5294 [#&#8203;5284]: https://github.com/tokio-rs/tokio/pull/5284 [#&#8203;4250]: https://github.com/tokio-rs/tokio/pull/4250 [#&#8203;5300]: https://github.com/tokio-rs/tokio/pull/5300 [#&#8203;5329]: https://github.com/tokio-rs/tokio/pull/5329 [#&#8203;5115]: https://github.com/tokio-rs/tokio/pull/5115 [#&#8203;5309]: https://github.com/tokio-rs/tokio/pull/5309 ### [`v1.23.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.23.1): Tokio v1.23.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.23.0...tokio-1.23.1) This release forward ports changes from 1.18.4. ##### Fixed - net: fix Windows named pipe server builder to maintain option when toggling pipe mode ([#&#8203;5336]). [#&#8203;5336]: https://github.com/tokio-rs/tokio/pull/5336 ### [`v1.23.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.23.0): Tokio v1.23.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.22.0...tokio-1.23.0) ##### Fixed - net: fix Windows named pipe connect ([#&#8203;5208]) - io: support vectored writes for `ChildStdin` ([#&#8203;5216]) - io: fix `async fn ready()` false positive for OS-specific events ([#&#8203;5231]) ##### Changed - runtime: `yield_now` defers task until after driver poll ([#&#8203;5223]) - runtime: reduce amount of codegen needed per spawned task ([#&#8203;5213]) - windows: replace `winapi` dependency with `windows-sys` ([#&#8203;5204]) [#&#8203;5208]: https://github.com/tokio-rs/tokio/pull/5208 [#&#8203;5216]: https://github.com/tokio-rs/tokio/pull/5216 [#&#8203;5213]: https://github.com/tokio-rs/tokio/pull/5213 [#&#8203;5204]: https://github.com/tokio-rs/tokio/pull/5204 [#&#8203;5223]: https://github.com/tokio-rs/tokio/pull/5223 [#&#8203;5231]: https://github.com/tokio-rs/tokio/pull/5231 ### [`v1.22.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.22.0): Tokio v1.22.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.21.2...tokio-1.22.0) ##### Added - runtime: add `Handle::runtime_flavor` ([#&#8203;5138]) - sync: add `Mutex::blocking_lock_owned` ([#&#8203;5130]) - sync: add `Semaphore::MAX_PERMITS` ([#&#8203;5144]) - sync: add `merge()` to semaphore permits ([#&#8203;4948]) - sync: add `mpsc::WeakUnboundedSender` ([#&#8203;5189]) ##### Added (unstable) - process: add `Command::process_group` ([#&#8203;5114]) - runtime: export metrics about the blocking thread pool ([#&#8203;5161]) - task: add `task::id()` and `task::try_id()` ([#&#8203;5171]) ##### Fixed - macros: don't take ownership of futures in macros ([#&#8203;5087]) - runtime: fix Stacked Borrows violation in `LocalOwnedTasks` ([#&#8203;5099]) - runtime: mitigate ABA with 32-bit queue indices when possible ([#&#8203;5042]) - task: wake local tasks to the local queue when woken by the same thread ([#&#8203;5095]) - time: panic in release mode when `mark_pending` called illegally ([#&#8203;5093]) - runtime: fix typo in expect message ([#&#8203;5169]) - runtime: fix `unsync_load` on atomic types ([#&#8203;5175]) - task: elaborate safety comments in task deallocation ([#&#8203;5172]) - runtime: fix `LocalSet` drop in thread local ([#&#8203;5179]) - net: remove libc type leakage in a public API ([#&#8203;5191]) - runtime: update the alignment of `CachePadded` ([#&#8203;5106]) ##### Changed - io: make `tokio::io::copy` continue filling the buffer when writer stalls ([#&#8203;5066]) - runtime: remove `coop::budget` from `LocalSet::run_until` ([#&#8203;5155]) - sync: make `Notify` panic safe ([#&#8203;5154]) ##### Documented - io: fix doc for `write_i8` to use signed integers ([#&#8203;5040]) - net: fix doc typos for TCP and UDP `set_tos` methods ([#&#8203;5073]) - net: fix function name in `UdpSocket::recv` documentation ([#&#8203;5150]) - sync: typo in `TryLockError` for `RwLock::try_write` ([#&#8203;5160]) - task: document that spawned tasks execute immediately ([#&#8203;5117]) - time: document return type of `timeout` ([#&#8203;5118]) - time: document that `timeout` checks only before poll ([#&#8203;5126]) - sync: specify return type of `oneshot::Receiver` in docs ([#&#8203;5198]) ##### Internal changes - runtime: use const `Mutex::new` for globals ([#&#8203;5061]) - runtime: remove `Option` around `mio::Events` in io driver ([#&#8203;5078]) - runtime: remove a conditional compilation clause ([#&#8203;5104]) - runtime: remove a reference to internal time handle ([#&#8203;5107]) - runtime: misc time driver cleanup ([#&#8203;5120]) - runtime: move signal driver to runtime module ([#&#8203;5121]) - runtime: signal driver now uses I/O driver directly ([#&#8203;5125]) - runtime: start decoupling I/O driver and I/O handle ([#&#8203;5127]) - runtime: switch `io::handle` refs with scheduler:Handle ([#&#8203;5128]) - runtime: remove Arc from I/O driver ([#&#8203;5134]) - runtime: use signal driver handle via `scheduler::Handle` ([#&#8203;5135]) - runtime: move internal clock fns out of context ([#&#8203;5139]) - runtime: remove `runtime::context` module ([#&#8203;5140]) - runtime: keep driver cfgs in `driver.rs` ([#&#8203;5141]) - runtime: add `runtime::context` to unify thread-locals ([#&#8203;5143]) - runtime: rename some confusing internal variables/fns ([#&#8203;5151]) - runtime: move `coop` mod into `runtime` ([#&#8203;5152]) - runtime: move budget state to context thread-local ([#&#8203;5157]) - runtime: move park logic into runtime module ([#&#8203;5158]) - runtime: move `Runtime` into its own file ([#&#8203;5159]) - runtime: unify entering a runtime with `Handle::enter` ([#&#8203;5163]) - runtime: remove handle reference from each scheduler ([#&#8203;5166]) - runtime: move `enter` into `context` ([#&#8203;5167]) - runtime: combine context and entered thread-locals ([#&#8203;5168]) - runtime: fix accidental unsetting of current handle ([#&#8203;5178]) - runtime: move `CoreStage` methods to `Core` ([#&#8203;5182]) - sync: name mpsc semaphore types ([#&#8203;5146]) [#&#8203;4948]: https://github.com/tokio-rs/tokio/pull/4948 [#&#8203;5040]: https://github.com/tokio-rs/tokio/pull/5040 [#&#8203;5042]: https://github.com/tokio-rs/tokio/pull/5042 [#&#8203;5061]: https://github.com/tokio-rs/tokio/pull/5061 [#&#8203;5066]: https://github.com/tokio-rs/tokio/pull/5066 [#&#8203;5073]: https://github.com/tokio-rs/tokio/pull/5073 [#&#8203;5078]: https://github.com/tokio-rs/tokio/pull/5078 [#&#8203;5087]: https://github.com/tokio-rs/tokio/pull/5087 [#&#8203;5093]: https://github.com/tokio-rs/tokio/pull/5093 [#&#8203;5095]: https://github.com/tokio-rs/tokio/pull/5095 [#&#8203;5099]: https://github.com/tokio-rs/tokio/pull/5099 [#&#8203;5104]: https://github.com/tokio-rs/tokio/pull/5104 [#&#8203;5106]: https://github.com/tokio-rs/tokio/pull/5106 [#&#8203;5107]: https://github.com/tokio-rs/tokio/pull/5107 [#&#8203;5114]: https://github.com/tokio-rs/tokio/pull/5114 [#&#8203;5117]: https://github.com/tokio-rs/tokio/pull/5117 [#&#8203;5118]: https://github.com/tokio-rs/tokio/pull/5118 [#&#8203;5120]: https://github.com/tokio-rs/tokio/pull/5120 [#&#8203;5121]: https://github.com/tokio-rs/tokio/pull/5121 [#&#8203;5125]: https://github.com/tokio-rs/tokio/pull/5125 [#&#8203;5126]: https://github.com/tokio-rs/tokio/pull/5126 [#&#8203;5127]: https://github.com/tokio-rs/tokio/pull/5127 [#&#8203;5128]: https://github.com/tokio-rs/tokio/pull/5128 [#&#8203;5130]: https://github.com/tokio-rs/tokio/pull/5130 [#&#8203;5134]: https://github.com/tokio-rs/tokio/pull/5134 [#&#8203;5135]: https://github.com/tokio-rs/tokio/pull/5135 [#&#8203;5138]: https://github.com/tokio-rs/tokio/pull/5138 [#&#8203;5138]: https://github.com/tokio-rs/tokio/pull/5138 [#&#8203;5139]: https://github.com/tokio-rs/tokio/pull/5139 [#&#8203;5140]: https://github.com/tokio-rs/tokio/pull/5140 [#&#8203;5141]: https://github.com/tokio-rs/tokio/pull/5141 [#&#8203;5143]: https://github.com/tokio-rs/tokio/pull/5143 [#&#8203;5144]: https://github.com/tokio-rs/tokio/pull/5144 [#&#8203;5144]: https://github.com/tokio-rs/tokio/pull/5144 [#&#8203;5146]: https://github.com/tokio-rs/tokio/pull/5146 [#&#8203;5150]: https://github.com/tokio-rs/tokio/pull/5150 [#&#8203;5151]: https://github.com/tokio-rs/tokio/pull/5151 [#&#8203;5152]: https://github.com/tokio-rs/tokio/pull/5152 [#&#8203;5154]: https://github.com/tokio-rs/tokio/pull/5154 [#&#8203;5155]: https://github.com/tokio-rs/tokio/pull/5155 [#&#8203;5157]: https://github.com/tokio-rs/tokio/pull/5157 [#&#8203;5158]: https://github.com/tokio-rs/tokio/pull/5158 [#&#8203;5159]: https://github.com/tokio-rs/tokio/pull/5159 [#&#8203;5160]: https://github.com/tokio-rs/tokio/pull/5160 [#&#8203;5161]: https://github.com/tokio-rs/tokio/pull/5161 [#&#8203;5163]: https://github.com/tokio-rs/tokio/pull/5163 [#&#8203;5166]: https://github.com/tokio-rs/tokio/pull/5166 [#&#8203;5167]: https://github.com/tokio-rs/tokio/pull/5167 [#&#8203;5168]: https://github.com/tokio-rs/tokio/pull/5168 [#&#8203;5169]: https://github.com/tokio-rs/tokio/pull/5169 [#&#8203;5171]: https://github.com/tokio-rs/tokio/pull/5171 [#&#8203;5172]: https://github.com/tokio-rs/tokio/pull/5172 [#&#8203;5175]: https://github.com/tokio-rs/tokio/pull/5175 [#&#8203;5178]: https://github.com/tokio-rs/tokio/pull/5178 [#&#8203;5179]: https://github.com/tokio-rs/tokio/pull/5179 [#&#8203;5182]: https://github.com/tokio-rs/tokio/pull/5182 [#&#8203;5189]: https://github.com/tokio-rs/tokio/pull/5189 [#&#8203;5191]: https://github.com/tokio-rs/tokio/pull/5191 [#&#8203;5198]: https://github.com/tokio-rs/tokio/pull/5198 ### [`v1.21.2`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.21.2): Tokio v1.21.2 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.21.1...tokio-1.21.2) ### 1.21.2 (September 27, 2022) This release removes the dependency on the `once_cell` crate to restore the MSRV of 1.21.x, which is the latest minor version at the time of release. ([#&#8203;5048]) [#&#8203;5048]: https://github.com/tokio-rs/tokio/pull/5048 ### [`v1.21.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.21.1): Tokio v1.21.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.21.0...tokio-1.21.1) ### 1.21.1 (September 13, 2022) ##### Fixed - net: fix dependency resolution for socket2 ([#&#8203;5000]) - task: ignore failure to set TLS in `LocalSet` Drop ([#&#8203;4976]) [#&#8203;4976]: https://github.com/tokio-rs/tokio/pull/4976 [#&#8203;5000]: https://github.com/tokio-rs/tokio/pull/5000 ### [`v1.21.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.21.0): Tokio v1.21.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.20.6...tokio-1.21.0) ### 1.21.0 (September 2, 2022) This release is the first release of Tokio to intentionally support WASM. The `sync,macros,io-util,rt,time` features are stabilized on WASM. Additionally the wasm32-wasi target is given unstable support for the `net` feature. ##### Added - net: add `device` and `bind_device` methods to TCP/UDP sockets ([#&#8203;4882]) - net: add `tos` and `set_tos` methods to TCP and UDP sockets ([#&#8203;4877]) - net: add security flags to named pipe `ServerOptions` ([#&#8203;4845]) - signal: add more windows signal handlers ([#&#8203;4924]) - sync: add `mpsc::Sender::max_capacity` method ([#&#8203;4904]) - sync: implement Weak version of `mpsc::Sender` ([#&#8203;4595]) - task: add `LocalSet::enter` ([#&#8203;4765]) - task: stabilize `JoinSet` and `AbortHandle` ([#&#8203;4920]) - tokio: add `track_caller` to public APIs ([#&#8203;4805], [#&#8203;4848], [#&#8203;4852]) - wasm: initial support for `wasm32-wasi` target ([#&#8203;4716]) ##### Fixed - miri: improve miri compatibility by avoiding temporary references in `linked_list::Link` impls ([#&#8203;4841]) - signal: don't register write interest on signal pipe ([#&#8203;4898]) - sync: add `#[must_use]` to lock guards ([#&#8203;4886]) - sync: fix hang when calling `recv` on closed and reopened broadcast channel ([#&#8203;4867]) - task: propagate attributes on task-locals ([#&#8203;4837]) ##### Changed - fs: change panic to error in `File::start_seek` ([#&#8203;4897]) - io: reduce syscalls in `poll_read` ([#&#8203;4840]) - process: use blocking threadpool for child stdio I/O ([#&#8203;4824]) - signal: make `SignalKind` methods const ([#&#8203;4956]) ##### Internal changes - rt: extract `basic_scheduler::Config` ([#&#8203;4935]) - rt: move I/O driver into `runtime` module ([#&#8203;4942]) - rt: rename internal scheduler types ([#&#8203;4945]) ##### Documented - chore: fix typos and grammar ([#&#8203;4858], [#&#8203;4894], [#&#8203;4928]) - io: fix typo in `AsyncSeekExt::rewind` docs ([#&#8203;4893]) - net: add documentation to `try_read()` for zero-length buffers ([#&#8203;4937]) - runtime: remove incorrect panic section for `Builder::worker_threads` ([#&#8203;4849]) - sync: doc of `watch::Sender::send` improved ([#&#8203;4959]) - task: add cancel safety docs to `JoinHandle` ([#&#8203;4901]) - task: expand on cancellation of `spawn_blocking` ([#&#8203;4811]) - time: clarify that the first tick of `Interval::tick` happens immediately ([#&#8203;4951]) ##### Unstable - rt: add unstable option to disable the LIFO slot ([#&#8203;4936]) - task: fix incorrect signature in `Builder::spawn_on` ([#&#8203;4953]) - task: make `task::Builder::spawn*` methods fallible ([#&#8203;4823]) [#&#8203;4595]: https://github.com/tokio-rs/tokio/pull/4595 [#&#8203;4716]: https://github.com/tokio-rs/tokio/pull/4716 [#&#8203;4765]: https://github.com/tokio-rs/tokio/pull/4765 [#&#8203;4805]: https://github.com/tokio-rs/tokio/pull/4805 [#&#8203;4811]: https://github.com/tokio-rs/tokio/pull/4811 [#&#8203;4823]: https://github.com/tokio-rs/tokio/pull/4823 [#&#8203;4824]: https://github.com/tokio-rs/tokio/pull/4824 [#&#8203;4837]: https://github.com/tokio-rs/tokio/pull/4837 [#&#8203;4840]: https://github.com/tokio-rs/tokio/pull/4840 [#&#8203;4841]: https://github.com/tokio-rs/tokio/pull/4841 [#&#8203;4845]: https://github.com/tokio-rs/tokio/pull/4845 [#&#8203;4848]: https://github.com/tokio-rs/tokio/pull/4848 [#&#8203;4849]: https://github.com/tokio-rs/tokio/pull/4849 [#&#8203;4852]: https://github.com/tokio-rs/tokio/pull/4852 [#&#8203;4858]: https://github.com/tokio-rs/tokio/pull/4858 [#&#8203;4867]: https://github.com/tokio-rs/tokio/pull/4867 [#&#8203;4877]: https://github.com/tokio-rs/tokio/pull/4877 [#&#8203;4882]: https://github.com/tokio-rs/tokio/pull/4882 [#&#8203;4886]: https://github.com/tokio-rs/tokio/pull/4886 [#&#8203;4893]: https://github.com/tokio-rs/tokio/pull/4893 [#&#8203;4894]: https://github.com/tokio-rs/tokio/pull/4894 [#&#8203;4897]: https://github.com/tokio-rs/tokio/pull/4897 [#&#8203;4898]: https://github.com/tokio-rs/tokio/pull/4898 [#&#8203;4901]: https://github.com/tokio-rs/tokio/pull/4901 [#&#8203;4904]: https://github.com/tokio-rs/tokio/pull/4904 [#&#8203;4920]: https://github.com/tokio-rs/tokio/pull/4920 [#&#8203;4924]: https://github.com/tokio-rs/tokio/pull/4924 [#&#8203;4928]: https://github.com/tokio-rs/tokio/pull/4928 [#&#8203;4935]: https://github.com/tokio-rs/tokio/pull/4935 [#&#8203;4936]: https://github.com/tokio-rs/tokio/pull/4936 [#&#8203;4937]: https://github.com/tokio-rs/tokio/pull/4937 [#&#8203;4942]: https://github.com/tokio-rs/tokio/pull/4942 [#&#8203;4945]: https://github.com/tokio-rs/tokio/pull/4945 [#&#8203;4951]: https://github.com/tokio-rs/tokio/pull/4951 [#&#8203;4953]: https://github.com/tokio-rs/tokio/pull/4953 [#&#8203;4956]: https://github.com/tokio-rs/tokio/pull/4956 [#&#8203;4959]: https://github.com/tokio-rs/tokio/pull/4959 ### [`v1.20.6`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.20.6): Tokio v1.20.6 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.20.5...tokio-1.20.6) ### 1.20.6 (September 22, 2023) This is a backport of a change from 1.27.0. ##### Changed - io: use `memchr` from `libc` ([#&#8203;5960]) [#&#8203;5960]: https://github.com/tokio-rs/tokio/pull/5960 ### [`v1.20.5`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.20.5): Tokio v1.20.5 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.20.4...tokio-1.20.5) ### 1.20.5 (May 28, 2023) Forward ports 1.18.6 changes. ##### Fixed - deps: disable default features for mio ([#&#8203;5728]) [#&#8203;5728]: https://github.com/tokio-rs/tokio/pull/5728 ### [`v1.20.4`](https://github.com/tokio-rs/tokio/compare/tokio-1.20.3...tokio-1.20.4) [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.20.3...tokio-1.20.4) ### [`v1.20.3`](https://github.com/tokio-rs/tokio/compare/tokio-1.20.2...tokio-1.20.3) [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.20.2...tokio-1.20.3) ### [`v1.20.2`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.20.2): Tokio v1.20.2 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.20.1...tokio-1.20.2) ### 1.20.2 (September 27, 2022) This release removes the dependency on the `once_cell` crate to restore the MSRV of the 1.20.x LTS release. ([#&#8203;5048]) [#&#8203;5048]: https://github.com/tokio-rs/tokio/pull/5048 ### [`v1.20.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.20.1): Tokio v1.20.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.20.0...tokio-1.20.1) ### 1.20.1 (July 25, 2022) ##### Fixed - chore: fix version detection in build script ([#&#8203;4860]) [#&#8203;4860]: https://github.com/tokio-rs/tokio/pull/4860 ### [`v1.20.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.20.0): Tokio v1.20.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.19.2...tokio-1.20.0) ### 1.20.0 (July 12, 2022) ##### Added - tokio: add track\_caller to public APIs ([#&#8203;4772], [#&#8203;4791], [#&#8203;4793], [#&#8203;4806], [#&#8203;4808]) - sync: Add `has_changed` method to `watch::Ref` ([#&#8203;4758]) ##### Changed - time: remove `src/time/driver/wheel/stack.rs` ([#&#8203;4766]) - rt: clean up arguments passed to basic scheduler ([#&#8203;4767]) - net: be more specific about winapi features ([#&#8203;4764]) - tokio: use const initialized thread locals where possible ([#&#8203;4677]) - task: various small improvements to LocalKey ([#&#8203;4795]) ##### Fixed ##### Documented - fs: warn about performance pitfall ([#&#8203;4762]) - chore: fix spelling ([#&#8203;4769]) - sync: document spurious failures in oneshot ([#&#8203;4777]) - sync: add warning for watch in non-Send futures ([#&#8203;4741]) - chore: fix typo ([#&#8203;4798]) ##### Unstable - joinset: rename `join_one` to `join_next` ([#&#8203;4755]) - rt: unhandled panic config for current thread rt ([#&#8203;4770]) [#&#8203;4677]: https://github.com/tokio-rs/tokio/pull/4677 [#&#8203;4741]: https://github.com/tokio-rs/tokio/pull/4741 [#&#8203;4755]: https://github.com/tokio-rs/tokio/pull/4755 [#&#8203;4758]: https://github.com/tokio-rs/tokio/pull/4758 [#&#8203;4762]: https://github.com/tokio-rs/tokio/pull/4762 [#&#8203;4764]: https://github.com/tokio-rs/tokio/pull/4764 [#&#8203;4766]: https://github.com/tokio-rs/tokio/pull/4766 [#&#8203;4767]: https://github.com/tokio-rs/tokio/pull/4767 [#&#8203;4769]: https://github.com/tokio-rs/tokio/pull/4769 [#&#8203;4770]: https://github.com/tokio-rs/tokio/pull/4770 [#&#8203;4772]: https://github.com/tokio-rs/tokio/pull/4772 [#&#8203;4777]: https://github.com/tokio-rs/tokio/pull/4777 [#&#8203;4791]: https://github.com/tokio-rs/tokio/pull/4791 [#&#8203;4793]: https://github.com/tokio-rs/tokio/pull/4793 [#&#8203;4795]: https://github.com/tokio-rs/tokio/pull/4795 [#&#8203;4798]: https://github.com/tokio-rs/tokio/pull/4798 [#&#8203;4806]: https://github.com/tokio-rs/tokio/pull/4806 [#&#8203;4808]: https://github.com/tokio-rs/tokio/pull/4808 ### [`v1.19.2`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.19.2): Tokio v1.19.2 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.19.1...tokio-1.19.2) ### 1.19.2 (June 6, 2022) This release fixes another bug in `Notified::enable`. ([#&#8203;4751]) [#&#8203;4751]: https://github.com/tokio-rs/tokio/pull/4751 ### [`v1.19.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.19.1): Tokio v1.19.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.19.0...tokio-1.19.1) ### 1.19.1 (June 5, 2022) This release fixes a bug in `Notified::enable`. ([#&#8203;4747]) [#&#8203;4747]: https://github.com/tokio-rs/tokio/pull/4747 ### [`v1.19.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.19.0): Tokio v1.19.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.18.6...tokio-1.19.0) ### 1.19.0 (June 3, 2022) ##### Added - runtime: add `is_finished` method for `JoinHandle` and `AbortHandle` ([#&#8203;4709]) - runtime: make global queue and event polling intervals configurable ([#&#8203;4671]) - sync: add `Notified::enable` ([#&#8203;4705]) - sync: add `watch::Sender::send_if_modified` ([#&#8203;4591]) - sync: add resubscribe method to broadcast::Receiver ([#&#8203;4607]) - net: add `take_error` to `TcpSocket` and `TcpStream` ([#&#8203;4739]) ##### Changed - io: refactor out usage of Weak in the io handle ([#&#8203;4656]) ##### Fixed - macros: avoid starvation in `join!` and `try_join!` ([#&#8203;4624]) ##### Documented - runtime: clarify semantics of tasks outliving `block_on` ([#&#8203;4729]) - time: fix example for `MissedTickBehavior::Burst` ([#&#8203;4713]) ##### Unstable - metrics: correctly update atomics in `IoDriverMetrics` ([#&#8203;4725]) - metrics: fix compilation with unstable, process, and rt, but without net ([#&#8203;4682]) - task: add `#[track_caller]` to `JoinSet`/`JoinMap` ([#&#8203;4697]) - task: add `Builder::{spawn_on, spawn_local_on, spawn_blocking_on}` ([#&#8203;4683]) - task: add `consume_budget` for cooperative scheduling ([#&#8203;4498]) - task: add `join_set::Builder` for configuring `JoinSet` tasks ([#&#8203;4687]) - task: update return value of `JoinSet::join_one` ([#&#8203;4726]) [#&#8203;4498]: https://github.com/tokio-rs/tokio/pull/4498 [#&#8203;4591]: https://github.com/tokio-rs/tokio/pull/4591 [#&#8203;4607]: https://github.com/tokio-rs/tokio/pull/4607 [#&#8203;4624]: https://github.com/tokio-rs/tokio/pull/4624 [#&#8203;4656]: https://github.com/tokio-rs/tokio/pull/4656 [#&#8203;4671]: https://github.com/tokio-rs/tokio/pull/4671 [#&#8203;4682]: https://github.com/tokio-rs/tokio/pull/4682 [#&#8203;4683]: https://github.com/tokio-rs/tokio/pull/4683 [#&#8203;4687]: https://github.com/tokio-rs/tokio/pull/4687 [#&#8203;4697]: https://github.com/tokio-rs/tokio/pull/4697 [#&#8203;4705]: https://github.com/tokio-rs/tokio/pull/4705 [#&#8203;4709]: https://github.com/tokio-rs/tokio/pull/4709 [#&#8203;4713]: https://github.com/tokio-rs/tokio/pull/4713 [#&#8203;4725]: https://github.com/tokio-rs/tokio/pull/4725 [#&#8203;4726]: https://github.com/tokio-rs/tokio/pull/4726 [#&#8203;4729]: https://github.com/tokio-rs/tokio/pull/4729 [#&#8203;4739]: https://github.com/tokio-rs/tokio/pull/4739 ### [`v1.18.6`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.18.6): Tokio v1.18.6 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.18.5...tokio-1.18.6) ### 1.18.6 (May 28, 2023) ##### Fixed - deps: disable default features for mio ([#&#8203;5728]) [#&#8203;5728]: https://github.com/tokio-rs/tokio/pull/5728 ### [`v1.18.5`](https://github.com/tokio-rs/tokio/compare/tokio-1.18.4...tokio-1.18.5) [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.18.4...tokio-1.18.5) ### [`v1.18.4`](https://github.com/tokio-rs/tokio/compare/tokio-1.18.3...tokio-1.18.4) [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.18.3...tokio-1.18.4) ### [`v1.18.3`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.18.3): Tokio v1.18.3 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.18.2...tokio-1.18.3) ### 1.18.3 (September 27, 2022) This release removes the dependency on the `once_cell` crate to restore the MSRV of the 1.18.x LTS release. ([#&#8203;5048]) [#&#8203;5048]: https://github.com/tokio-rs/tokio/pull/5048 ### [`v1.18.2`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.18.2): Tokio v1.18.2 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.18.1...tokio-1.18.2) ### 1.18.2 (May 5, 2022) Add missing features for the `winapi` dependency. ([#&#8203;4663]) [#&#8203;4663]: https://github.com/tokio-rs/tokio/pull/4663 ### [`v1.18.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.18.1): Tokio v1.18.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.18.0...tokio-1.18.1) ### 1.18.1 (May 2, 2022) The 1.18.0 release broke the build for targets without 64-bit atomics when building with `tokio_unstable`. This release fixes that. ([#&#8203;4649]) [#&#8203;4649]: https://github.com/tokio-rs/tokio/pull/4649 ### [`v1.18.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.18.0): Tokio v1.18.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.17.0...tokio-1.18.0) ### 1.18.0 (April 27, 2022) This release adds a number of new APIs in `tokio::net`, `tokio::signal`, and `tokio::sync`. In addition, it adds new unstable APIs to `tokio::task` (`Id`s for uniquely identifying a task, and `AbortHandle` for remotely cancelling a task), as well as a number of bugfixes. ##### Fixed - blocking: add missing `#[track_caller]` for `spawn_blocking` ([#&#8203;4616](https://github.com/tokio-rs/tokio/issues/4616)) - macros: fix `select` macro to process 64 branches ([#&#8203;4519](https://github.com/tokio-rs/tokio/issues/4519)) - net: fix `try_io` methods not calling Mio's `try_io` internally ([#&#8203;4582](https://github.com/tokio-rs/tokio/issues/4582)) - runtime: recover when OS fails to spawn a new thread ([#&#8203;4485](https://github.com/tokio-rs/tokio/issues/4485)) ##### Added - net: add `UdpSocket::peer_addr` ([#&#8203;4611](https://github.com/tokio-rs/tokio/issues/4611)) - net: add `try_read_buf` method for named pipes ([#&#8203;4626](https://github.com/tokio-rs/tokio/issues/4626)) - signal: add `SignalKind` `Hash`/`Eq` impls and `c_int` conversion ([#&#8203;4540](https://github.com/tokio-rs/tokio/issues/4540)) - signal: add support for signals up to `SIGRTMAX` ([#&#8203;4555](https://github.com/tokio-rs/tokio/issues/4555)) - sync: add `watch::Sender::send_modify` method ([#&#8203;4310](https://github.com/tokio-rs/tokio/issues/4310)) - sync: add `broadcast::Receiver::len` method ([#&#8203;4542](https://github.com/tokio-rs/tokio/issues/4542)) - sync: add `watch::Receiver::same_channel` method ([#&#8203;4581](https://github.com/tokio-rs/tokio/issues/4581)) - sync: implement `Clone` for `RecvError` types ([#&#8203;4560](https://github.com/tokio-rs/tokio/issues/4560)) ##### Changed - update `mio` to 0.8.1 ([#&#8203;4582](https://github.com/tokio-rs/tokio/issues/4582)) - macros: rename `tokio::select!`'s internal `util` module ([#&#8203;4543](https://github.com/tokio-rs/tokio/issues/4543)) - runtime: use `Vec::with_capacity` when building runtime ([#&#8203;4553](https://github.com/tokio-rs/tokio/issues/4553)) ##### Documented - improve docs for `tokio_unstable` ([#&#8203;4524](https://github.com/tokio-rs/tokio/issues/4524)) - runtime: include more documentation for thread\_pool/worker ([#&#8203;4511](https://github.com/tokio-rs/tokio/issues/4511)) - runtime: update `Handle::current`'s docs to mention `EnterGuard` ([#&#8203;4567](https://github.com/tokio-rs/tokio/issues/4567)) - time: clarify platform specific timer resolution ([#&#8203;4474](https://github.com/tokio-rs/tokio/issues/4474)) - signal: document that `Signal::recv` is cancel-safe ([#&#8203;4634](https://github.com/tokio-rs/tokio/issues/4634)) - sync: `UnboundedReceiver` close docs ([#&#8203;4548](https://github.com/tokio-rs/tokio/issues/4548)) ##### Unstable The following changes only apply when building with `--cfg tokio_unstable`: - task: add `task::Id` type ([#&#8203;4630](https://github.com/tokio-rs/tokio/issues/4630)) - task: add `AbortHandle` type for cancelling tasks in a `JoinSet` ([#&#8203;4530](https://github.com/tokio-rs/tokio/issues/4530)], \[[#&#8203;4640](https://github.com/tokio-rs/tokio/issues/4640)) - task: fix missing `doc(cfg(...))` attributes for `JoinSet` ([#&#8203;4531](https://github.com/tokio-rs/tokio/issues/4531)) - task: fix broken link in `AbortHandle` RustDoc ([#&#8203;4545](https://github.com/tokio-rs/tokio/issues/4545)) - metrics: add initial IO driver metrics ([#&#8203;4507](https://github.com/tokio-rs/tokio/issues/4507)) ### [`v1.17.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.17.0): Tokio v1.17.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.16.1...tokio-1.17.0) ### 1.17.0 (February 15, 2022) This release updates the minimum supported Rust version (MSRV) to 1.49, the `mio` dependency to v0.8, and the (optional) `parking_lot` dependency to v0.12. Additionally, it contains several bug fixes, as well as internal refactoring and performance improvements. ##### Fixed - time: prevent panicking in `sleep` with large durations ([#&#8203;4495]) - time: eliminate potential panics in `Instant` arithmetic on platforms where `Instant::now` is not monotonic ([#&#8203;4461]) - io: fix `DuplexStream` not participating in cooperative yielding ([#&#8203;4478]) - rt: fix potential double panic when dropping a `JoinHandle` ([#&#8203;4430]) ##### Changed - update minimum supported Rust version to 1.49 ([#&#8203;4457]) - update `parking_lot` dependency to v0.12.0 ([#&#8203;4459]) - update `mio` dependency to v0.8 ([#&#8203;4449]) - rt: remove an unnecessary lock in the blocking pool ([#&#8203;4436]) - rt: remove an unnecessary enum in the basic scheduler ([#&#8203;4462]) - time: use bit manipulation instead of modulo to improve performance ([#&#8203;4480]) - net: use `std::future::Ready` instead of our own `Ready` future ([#&#8203;4271]) - replace deprecated `atomic::spin_loop_hint` with `hint::spin_loop` ([#&#8203;4491]) - fix miri failures in intrusive linked lists ([#&#8203;4397]) ##### Documented - io: add an example for `tokio::process::ChildStdin` ([#&#8203;4479]) ##### Unstable The following changes only apply when building with `--cfg tokio_unstable`: - task: fix missing location information in `tracing` spans generated by `spawn_local` ([#&#8203;4483]) - task: add `JoinSet` for managing sets of tasks ([#&#8203;4335]) - metrics: fix compilation error on MIPS ([#&#8203;4475]) - metrics: fix compilation error on arm32v7 ([#&#8203;4453]) [#&#8203;4495]: https://github.com/tokio-rs/tokio/pull/4495 [#&#8203;4461]: https://github.com/tokio-rs/tokio/pull/4461 [#&#8203;4478]: https://github.com/tokio-rs/tokio/pull/4478 [#&#8203;4430]: https://github.com/tokio-rs/tokio/pull/4430 [#&#8203;4457]: https://github.com/tokio-rs/tokio/pull/4457 [#&#8203;4459]: https://github.com/tokio-rs/tokio/pull/4459 [#&#8203;4449]: https://github.com/tokio-rs/tokio/pull/4449 [#&#8203;4462]: https://github.com/tokio-rs/tokio/pull/4462 [#&#8203;4436]: https://github.com/tokio-rs/tokio/pull/4436 [#&#8203;4480]: https://github.com/tokio-rs/tokio/pull/4480 [#&#8203;4271]: https://github.com/tokio-rs/tokio/pull/4271 [#&#8203;4491]: https://github.com/tokio-rs/tokio/pull/4491 [#&#8203;4397]: https://github.com/tokio-rs/tokio/pull/4397 [#&#8203;4479]: https://github.com/tokio-rs/tokio/pull/4479 [#&#8203;4483]: https://github.com/tokio-rs/tokio/pull/4483 [#&#8203;4335]: https://github.com/tokio-rs/tokio/pull/4335 [#&#8203;4475]: https://github.com/tokio-rs/tokio/pull/4475 [#&#8203;4453]: https://github.com/tokio-rs/tokio/pull/4453 ### [`v1.16.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.16.1): Tokio v1.16.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.16.0...tokio-1.16.1) ### 1.16.1 (January 28, 2022) This release fixes a bug in [#&#8203;4428] with the change [#&#8203;4437]. [#&#8203;4428]: https://github.com/tokio-rs/tokio/pull/4428 [#&#8203;4437]: https://github.com/tokio-rs/tokio/pull/4437 ### [`v1.16.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.16.0): Tokio v1.16.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.15.0...tokio-1.16.0) Fixes a soundness bug in `io::Take` ([#&#8203;4428]). The unsoundness is exposed when leaking memory in the given `AsyncRead` implementation and then overwriting the supplied buffer: ```rust impl AsyncRead for Buggy { fn poll_read( self: Pin<&mut Self>, cx: &mut Context<'_>, buf: &mut ReadBuf<'_> ) -> Poll<Result<()>> { let new_buf = vec![0; 5].leak(); *buf = ReadBuf::new(new_buf); buf.put_slice(b"hello"); Poll::Ready(Ok(())) } } ``` Also, this release includes improvements to the multi-threaded scheduler that can increase throughput by up to 20% in some cases ([#&#8203;4383]). ##### Fixed - io: **soundness** don't expose uninitialized memory when using `io::Take` in edge case ([#&#8203;4428]) - fs: ensure `File::write` results in a `write` syscall when the runtime shuts down ([#&#8203;4316]) - process: drop pipe after child exits in `wait_with_output` ([#&#8203;4315]) - rt: improve error message when spawning a thread fails ([#&#8203;4398]) - rt: reduce false-positive thread wakups in the multi-threaded scheduler ([#&#8203;4383]) - sync: don't inherit `Send` from `parking_lot::*Guard` ([#&#8203;4359]) ##### Added - net: `TcpSocket::linger()` and `set_linger()` ([#&#8203;4324]) - net: impl `UnwindSafe` for socket types ([#&#8203;4384]) - rt: impl `UnwindSafe` for `JoinHandle` ([#&#8203;4418]) - sync: `watch::Receiver::has_changed()` ([#&#8203;4342]) - sync: `oneshot::Receiver::blocking_recv()` ([#&#8203;4334]) - sync: `RwLock` blocking operations ([#&#8203;4425]) ##### Unstable The following changes only apply when building with `--cfg tokio_unstable` - rt: **breaking change** overhaul runtime metrics API ([#&#8203;4373]) [#&#8203;4428]: https://github.com/tokio-rs/tokio/pull/4428 [#&#8203;4316]: https://github.com/tokio-rs/tokio/pull/4316 [#&#8203;4315]: https://github.com/tokio-rs/tokio/pull/4315 [#&#8203;4398]: https://github.com/tokio-rs/tokio/pull/4398 [#&#8203;4383]: https://github.com/tokio-rs/tokio/pull/4383 [#&#8203;4359]: https://github.com/tokio-rs/tokio/pull/4359 [#&#8203;4324]: https://github.com/tokio-rs/tokio/pull/4324 [#&#8203;4384]: https://github.com/tokio-rs/tokio/pull/4384 [#&#8203;4418]: https://github.com/tokio-rs/tokio/pull/4418 [#&#8203;4342]: https://github.com/tokio-rs/tokio/pull/4342 [#&#8203;4334]: https://github.com/tokio-rs/tokio/pull/4334 [#&#8203;4425]: https://github.com/tokio-rs/tokio/pull/4425 [#&#8203;4373]: https://github.com/tokio-rs/tokio/pull/4373 ### [`v1.15.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.15.0): Tokio v1.15.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.14.1...tokio-1.15.0) ##### Fixed - io: add cooperative yielding support to `io::empty()` ([#&#8203;4300]) - time: make timeout robust against budget-depleting tasks ([#&#8203;4314]) ##### Changed - update minimum supported Rust version to 1.46. ##### Added - time: add `Interval::reset()` ([#&#8203;4248]) - io: add explicit lifetimes to `AsyncFdReadyGuard` ([#&#8203;4267]) - process: add `Command::as_std()` ([#&#8203;4295]) ##### Added (unstable) - tracing: instrument `tokio::sync` types ([#&#8203;4302]) [#&#8203;4302]: https://github.com/tokio-rs/tokio/pull/4302 [#&#8203;4300]: https://github.com/tokio-rs/tokio/pull/4300 [#&#8203;4295]: https://github.com/tokio-rs/tokio/pull/4295 [#&#8203;4267]: https://github.com/tokio-rs/tokio/pull/4267 [#&#8203;4248]: https://github.com/tokio-rs/tokio/pull/4248 [#&#8203;4314]: https://github.com/tokio-rs/tokio/pull/4314 ### [`v1.14.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.14.1): Tokio v1.14.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.14.0...tokio-1.14.1) This release backports a bug fix from 1.16.1 Fixes a soundness bug in `io::Take` ([#&#8203;4428]). The unsoundness is exposed when leaking memory in the given `AsyncRead` implementation and then overwriting the supplied buffer: ```rust impl AsyncRead for Buggy { fn poll_read( self: Pin<&mut Self>, cx: &mut Context<'_>, buf: &mut ReadBuf<'_> ) -> Poll<Result<()>> { let new_buf = vec![0; 5].leak(); *buf = ReadBuf::new(new_buf); buf.put_slice(b"hello"); Poll::Ready(Ok(())) } } ``` ##### Fixed - io: **soundness** don't expose uninitialized memory when using `io::Take` in edge case ([#&#8203;4428]) [#&#8203;4428]: https://github.com/tokio-rs/tokio/pull/4428 ### [`v1.14.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.14.0): Tokio v1.14.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.13.1...tokio-1.14.0) ### 1.14.0 (November 15, 2021) ##### Fixed - macros: fix compiler errors when using `mut` patterns in `select!` ([#&#8203;4211]) - sync: fix a data race between `oneshot::Sender::send` and awaiting a `oneshot::Receiver` when the oneshot has been closed ([#&#8203;4226]) - sync: make `AtomicWaker` panic safe ([#&#8203;3689]) - runtime: fix basic scheduler dropping tasks outside a runtime context ([#&#8203;4213]) ##### Added - stats: add `RuntimeStats::busy_duration_total` ([#&#8203;4179], [#&#8203;4223]) ##### Changed - io: updated `copy` buffer size to match `std::io::copy` ([#&#8203;4209]) ##### Documented - io: rename buffer to file in doc-test ([#&#8203;4230]) - sync: fix Notify example ([#&#8203;4212]) [#&#8203;4211]: https://github.com/tokio-rs/tokio/pull/4211 [#&#8203;4226]: https://github.com/tokio-rs/tokio/pull/4226 [#&#8203;3689]: https://github.com/tokio-rs/tokio/pull/3689 [#&#8203;4213]: https://github.com/tokio-rs/tokio/pull/4213 [#&#8203;4179]: https://github.com/tokio-rs/tokio/pull/4179 [#&#8203;4223]: https://github.com/tokio-rs/tokio/pull/4223 [#&#8203;4209]: https://github.com/tokio-rs/tokio/pull/4209 [#&#8203;4230]: https://github.com/tokio-rs/tokio/pull/4230 [#&#8203;4212]: https://github.com/tokio-rs/tokio/pull/4212 ### [`v1.13.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.13.1): Tokio v1.13.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.13.0...tokio-1.13.1) ### 1.13.1 (November 15, 2021) This release fixes a data race when sending and receiving on a closed `oneshot` channel ([RUSTSEC-2021-0124]). ##### Fixed - sync: fix a data race between `oneshot::Sender::send` and awaiting a `oneshot::Receiver` when the oneshot has been closed ([#&#8203;4226](https://github.com/tokio-rs/tokio/issues/4226)) [RUSTSEC-2021-0124]: https://rustsec.org/advisories/RUSTSEC-2021-0124.html ### [`v1.13.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.13.0): Tokio v1.13.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.12.0...tokio-1.13.0) ### 1.13.0 (October 29, 2021) ##### Fixed - sync: fix `Notify` to clone the waker before locking its waiter list ([#&#8203;4129]) - tokio: add riscv32 to non atomic64 architectures ([#&#8203;4185]) ##### Added - net: add `poll_{recv,send}_ready` methods to `udp` and `uds_datagram` ([#&#8203;4131]) - net: add `try_*`, `readable`, `writable`, `ready`, and `peer_addr` methods to split halves ([#&#8203;4120]) - sync: add `blocking_lock` to `Mutex` ([#&#8203;4130]) - sync: add `watch::Sender::send_replace` ([#&#8203;3962], [#&#8203;4195]) - sync: expand `Debug` for `Mutex<T>` impl to unsized `T` ([#&#8203;4134]) - tracing: instrument time::Sleep ([#&#8203;4072]) - tracing: use structured location fields for spawned tasks ([#&#8203;4128]) ##### Changed - io: add assert in `copy_bidirectional` that `poll_write` is sensible ([#&#8203;4125]) - macros: use qualified syntax when polling in `select!` ([#&#8203;4192]) - runtime: handle `block_on` wakeups better ([#&#8203;4157]) - task: allocate callback on heap immediately in debug mode ([#&#8203;4203]) - tokio: assert platform-minimum requirements at build time ([#&#8203;3797]) ##### Documented - docs: conversion of doc comments to indicative mood ([#&#8203;4174]) - docs: add returning on the first error example for `try_join!` ([#&#8203;4133]) - docs: fixing broken links in `tokio/src/lib.rs` ([#&#8203;4132]) - signal: add example with background listener ([#&#8203;4171]) - sync: add more oneshot examples ([#&#8203;4153]) - time: document `Interval::tick` cancel safety ([#&#8203;4152]) [#&#8203;3797]: https://github.com/tokio-rs/tokio/pull/3797 [#&#8203;3962]: https://github.com/tokio-rs/tokio/pull/3962 [#&#8203;4072]: https://github.com/tokio-rs/tokio/pull/4072 [#&#8203;4120]: https://github.com/tokio-rs/tokio/pull/4120 [#&#8203;4125]: https://github.com/tokio-rs/tokio/pull/4125 [#&#8203;4128]: https://github.com/tokio-rs/tokio/pull/4128 [#&#8203;4129]: https://github.com/tokio-rs/tokio/pull/4129 [#&#8203;4130]: https://github.com/tokio-rs/tokio/pull/4130 [#&#8203;4131]: https://github.com/tokio-rs/tokio/pull/4131 [#&#8203;4132]: https://github.com/tokio-rs/tokio/pull/4132 [#&#8203;4133]: https://github.com/tokio-rs/tokio/pull/4133 [#&#8203;4134]: https://github.com/tokio-rs/tokio/pull/4134 [#&#8203;4152]: https://github.com/tokio-rs/tokio/pull/4152 [#&#8203;4153]: https://github.com/tokio-rs/tokio/pull/4153 [#&#8203;4157]: https://github.com/tokio-rs/tokio/pull/4157 [#&#8203;4171]: https://github.com/tokio-rs/tokio/pull/4171 [#&#8203;4174]: https://github.com/tokio-rs/tokio/pull/4174 [#&#8203;4185]: https://github.com/tokio-rs/tokio/pull/4185 [#&#8203;4192]: https://github.com/tokio-rs/tokio/pull/4192 [#&#8203;4195]: https://github.com/tokio-rs/tokio/pull/4195 [#&#8203;4203]: https://github.com/tokio-rs/tokio/pull/4203 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNTcuNCIsInVwZGF0ZWRJblZlciI6IjQxLjE0OC41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
renovatebot force-pushed renovate/all-minor-patch from 14094b522b to 7b5baea7c4 2025-05-06 09:04:27 +02:00 Compare
renovatebot force-pushed renovate/all-minor-patch from 7b5baea7c4 to 952a3ff57f 2025-05-24 16:49:28 +02:00 Compare
renovatebot force-pushed renovate/all-minor-patch from 952a3ff57f to c654ace384 2025-07-02 10:34:22 +02:00 Compare
renovatebot force-pushed renovate/all-minor-patch from c654ace384 to 0d62f71d91 2025-10-14 15:21:26 +02:00 Compare
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/all-minor-patch:renovate/all-minor-patch
git switch renovate/all-minor-patch

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff renovate/all-minor-patch
git switch renovate/all-minor-patch
git rebase main
git switch main
git merge --ff-only renovate/all-minor-patch
git switch renovate/all-minor-patch
git rebase main
git switch main
git merge --no-ff renovate/all-minor-patch
git switch main
git merge --squash renovate/all-minor-patch
git switch main
git merge --ff-only renovate/all-minor-patch
git switch main
git merge renovate/all-minor-patch
git push origin main
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lilly/VipTraceRouter#1
No description provided.