Releases: tokio-rs/tokio
Tokio v1.44.1
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)