Releases: tokio-rs/tokio
Tokio v1.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 #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 ofcore_threads
(#7186)
Tokio v1.43.0
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 inBlocking
(#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
inRepeat
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
Tokio v1.42.0
Tokio v1.41.1
Tokio v1.41.0
1.41.0 (Oct 22th, 2024)
Added
- metrics: stabilize
global_queue_depth
(#6854, #6918) - net: add conversions for unix
SocketAddr
(#6868) - sync: add
watch::Sender::sender_count
(#6836) - sync: add
mpsc::Receiver::blocking_recv_many
(#6867) - task: stabilize
Id
apis (#6793, #6891)
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]
toNotified
(#6828) - sync: make
watch
cooperative (#6846) - sync: make
broadcast::Receiver
cooperative (#6870) - task: add task size to tracing instrumentation (#6881)
- wasm: enable
cfg_fs
forwasi
target (#6822)
Fixed
- net: fix regression of abstract socket path in unix socket (#6838)
Documented
- io: recommend
OwnedFd
withAsyncFd
(#6821) - io: document cancel safety of
AsyncFd
methods (#6890) - macros: render more comprehensible documentation for
join
andtry_join
(#6814, #6841) - net: fix swapped examples for
TcpSocket::set_nodelay
andTcpSocket::nodelay
(#6840) - sync: document runtime compatibility (#6833)
Tokio v1.40.0
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
andBatchSemaphore
instrumentation explicit roots (#6727) - task: use
NonZeroU64
fortask::Id
(#6733) - task: include panic message when printing
JoinError
(#6753) - task: add
#[must_use]
toJoinHandle::abort_handle
(#6762) - time: eliminate timer wheel allocations (#6779)
Documented
Tokio v1.39.3
1.39.3 (August 17th, 2024)
This release fixes a regression where the unix socket api stopped accepting the abstract socket namespace. (#6772)
Tokio v1.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. (#6722)
Tokio v1.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. (#6715)
Tokio v1.39.0
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
forEmpty
(#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
forwatch::Sender
(#6626) - task: implement
Clone
forAbortHandle
(#6621) - task: stabilize
consume_budget
(#6622)
Changed
- io: improve panic message of
ReadBuf::put_slice()
(#6629) - io: read during write in
copy_bidirectional
andcopy
(#6532) - runtime: replace
num_cpus
withavailable_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
withtimeout
(#6666) - macros: support
IntoFuture
withjoin!
andselect!
(#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)