Releases: tokio-rs/tokio
Releases · tokio-rs/tokio
Tokio v1.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
(#6573) - io: add
copy_bidirectional_with_sizes
(#6500) - io: implement
AsyncBufRead
forJoin
(#6449) - net: add Apple visionOS support (#6465)
- net: implement
Clone
forNamedPipeInfo
(#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
inblock_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 inTimerShared
(#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)
Tokio v1.37.0
1.37.0 (March 28th, 2024)
Added
- fs: add
set_max_buf_size
totokio::fs::File
(#6411) - io: add
try_new
andtry_with_interest
toAsyncFd
(#6345) - sync: add
forget_permits
method to semaphore (#6331) - sync: add
is_closed
,is_empty
, andlen
to mpsc receivers (#6348) - sync: add a
rwlock()
method to ownedRwLock
guards (#6418) - sync: expose strong and weak counts of mpsc sender handles (#6405)
- sync: implement
Clone
forwatch::Sender
(#6388) - task: add
TaskLocalFuture::take_value
(#6340) - task: implement
FromIterator
forJoinSet
(#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
beforenew_with
(#6392) - sync: update watch channel docs (#6395)
- task: fix documentation links (#6336)
Changed (unstable)
Tokio v1.36.0
1.36.0 (February 2nd, 2024)
Added
- io: add
tokio::io::Join
(#6220) - io: implement
AsyncWrite
forEmpty
(#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
andsink
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
Tokio v1.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
(#6221)
Tokio v1.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
(#6221)
Tokio v1.25.3
1.25.3 (December 17th, 2023)
Fixed
- io: add budgeting to
tokio::runtime::io::registration::async_io
(#6221)
Tokio v1.35.0
1.35.0 (December 8th, 2023)
Added
- net: add Apple watchOS support (#6176)
Changed
- io: drop the
Sized
requirements fromAsyncReadExt.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
Tokio v1.34.0
Tokio v1.33.0
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
- add missing backticks in code examples (#5938, #6056)
- fix typos (#5988, #6030)
- process: document that
Child::wait
is cancel safe (#5977) - sync: add examples for
Semaphore
(#5939, #5956, #5978, #6031, #6032, #6050) - sync: document that
broadcast
capacity is a lower bound (#6042) - sync: document that
const_new
is not instrumented (#6002) - sync: improve cancel-safety documentation for
mpsc::Sender::send
(#5947) - sync: improve docs for
watch
channel (#5954) - taskdump: render taskdump documentation on docs.rs (#5972)
Unstable
- taskdump: fix potential deadlock (#6036)