NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #113 most downloaded on crates.io
Additional utilities for working with Tokio.
Last release 2 months ago
21 Jul 2026
Ships fairly regularly
a new release about every 3 months
Nearly every release is documented
notes for 37 of 38 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
38 releases · first in 2018
chore: prepare tokio-util v0.7.19
chore: prepare tokio-util v0.7.19 (#8309)
write_all_vectored (#7768, #8159)DropGuard::token for cancellation tokens (#8226)PartialEq and Eq for CancellationToken (#8110)AbortOnDrop (#7855)JoinMap::try_join_next (#8099)libc::memchr for LinesCodec delimiter scan (#8141)is_readable when buffer is not empty (#7912)JoinQueue waker in try_join_next (#8279)DelayQueue after resetting to expired (#8274)UdpFramed decoder errors (#8248)One column per quarter.
io: add tokio_util::simplex ([#7565])
codec: add {FramedRead,FramedWrite}::into_parts() ([#7566])
codec: add FramedWrite::with_capacity ([#7493])
FramedWrite::with_capacity (#7493)CancellationToken for FutureExt (#7475)DropGuardRef for CancellationToken (#7407)AbortOnDropHandle::detach (#7400)JoinMap (#7075)Framed::with_capacity (#7500)CancellationToken::run_until_cancelled biased towards the token (#7462)task: properly handle removed entries in JoinMap ([#7264])
io: add get_ref and get_mut for SyncIoBridge ([#7128])
get_ref and get_mut for SyncIoBridge (#7128)read_exact_arc (#7165)CancellationToken::run_until_cancelled_owned (#7081)AnyDelimiterCodec::encode (#7188)Either to use underlying AsyncWrite implementation (#7025)SyncIoBridge with examples and alternatives (#6815)codec: fix incorrect handling of invalid utf-8 in LinesCodec::decode_eof ([#7011])
LinesCodec::decode_eof (#7011)This release bumps the MSRV to 1.70. ([#6645])
This release bumps the MSRV to 1.70. (#6645)
run_until_cancelled to tokio_util::sync::CancellationToken (#6618)AbortOnDropHandle type (#6786)DelayQueue when removing last item (#6752)TaskTracker docs (#6792)This release updates the MSRV to 1.63. ([#6126])
This release updates the MSRV to 1.63. (#6126)
Sink for Either (#6239)DelayQueue::deadline (#6163)FutureExt::timeout (#6276)LengthDelimitedCodec options (#6414)T: ?Sized to tokio_util::io::poll_read_buf (#6441)'static bound on impl Sink for PollSender (#6397)task: add TaskTracker ([#6033])
io: add passthrough AsyncRead/AsyncWrite to InspectWriter/InspectReader ([#5739])
AsyncRead/AsyncWrite to InspectWriter/InspectReader (#5739)JoinMap (#5797)StreamReader and SinkWriter (#5941)SyncIoBridge::into_inner (#5971)LinesCodec (#5982)This release bumps the MSRV of tokio-util to 1.56.
This release bumps the MSRV of tokio-util to 1.56.
DelayQueue::peek (#5569)This release contains one performance improvement:
CancellationToken (#5561)DelayQueue (#5630)CancellationToken doc on child tokens (#5632)This release reverts the removal of the Encoder bound on the FramedParts constructor from [#5280] since it turned out to be a breaking change. ([#5450…
This release reverts the removal of the Encoder bound on the FramedParts
constructor from [#5280] since it turned out to be a breaking change. (#5450)
This release fixes a compilation failure in 0.7.5 when it is used together with Tokio version 1.21 and unstable features are enabled. ([#5445])
This release fixes a compilation failure in 0.7.5 when it is used together with Tokio version 1.21 and unstable features are enabled. (#5445)
This release fixes an accidental breaking change where UnwindSafe was accidentally removed from CancellationToken.
This release fixes an accidental breaking change where UnwindSafe was
accidentally removed from CancellationToken.
Framed::backpressure_boundary (#5124)InspectReader and InspectWriter (#5033)tokio_util::io::{CopyToBytes, SinkWriter} (#5070, #5436)std::io::BufRead on SyncIoBridge (#5265)PollSemaphore::poll_acquire_many (#5137)CancellationToken (#5153)DelayQueue::try_remove (#5052)LengthDelimitedCodec buffer over-reservation (#4997)UnwindSafe on CancellationToken (#5438)Encoder bound on FramedParts constructor (#5280)StreamReader (#5145)task: remove the unstable, deprecated JoinMap::join_one ([#4920])
tracing: don't require default tracing features ([#4592])
This release contains a rewrite of CancellationToken that fixes a memory leak. ([#4652])
This release contains a rewrite of CancellationToken that fixes a memory leak. (#4652)
codec: add length_field_type to LengthDelimitedCodec builder ([#4508])
task: add spawn_pinned ([#3370])
spawn_pinned (#3370)shrink_to_fit and compact methods to DelayQueue (#4170)Builder::max_frame_length docs (#4352)Framed (#4372)UnixListener and TcpListener (#4385)Framed::map_codec (#4427)Encoder<BytesMut> for BytesCodec (#4465)This is a backport for the memory leak in CancellationToken that was originally fixed in 0.7.2. ([#4652])
This is a backport for the memory leak in CancellationToken that was originally fixed in 0.7.2. (#4652)
codec: implement Clone for LengthDelimitedCodec ([#4089])
sync: add drop guard for CancellationToken ([#3839])
udp: make UdpFramed take Borrow ([#3451])
util: makes Framed and FramedStream resumable after eof ([#3272])
util: annotate time module as requiring time feature ([#3606])
time feature (#3606)codec: AnyDelimiter codec ([#3406])
sync: add ReusableBoxFuture utility ([#3464])
ReusableBoxFuture utility ([#3464])ReusableBoxFuture for PollSemaphore ([#3463])async-stream dependency ([#3463])tokio-stream dependency ([#3487])sync: add pollable Semaphore ([#3444])
Semaphore ([#3444])DelayQueue entries ([#3270])codec: get_ref(), get_mut(), get_pin_mut() and into_inner() for Framed, FramedRead, FramedWrite and StreamReader ([#3364]).
get_ref(), get_mut(), get_pin_mut() and into_inner() for
Framed, FramedRead, FramedWrite and StreamReader ([#3364]).write_buffer() and write_buffer_mut() for Framed and
FramedWrite ([#3387]).rt: add constructors to TokioContext (#3221).
tokio 1.0.TokioContext (#3221).io: poll_read_buf util fn (#2972).
poll_read_buf util fn (#2972).poll_write_buf util fn with vectored write support (#3156).io: update bytes to 0.6 (#3071).
bytes to 0.6 (#3071).sync: CancellationToken for coordinating task cancellation (#2747).
CancellationToken for coordinating task cancellation (#2747).TokioContext sets the Tokio runtime for the duration of a future (#2791)StreamReader/ReaderStream map between AsyncRead values and Stream
of bytes (#2788).DelayQueue to manage many delays (#2897).Adjust minimum-supported Tokio version to v0.2.5 to account for an internal dependency on features in that version of Tokio. ([#2326])
This release fixes an use-after-free in the IO driver. Additionally, the read_buf
and write_buf methods have been added back to the IO traits, as the bytes crate
is now on track to reach version 1.0 together with Tokio.
Breaking Change: Change Encoder trait to take a generic Item parameter, which allows codec writers to pass references into Framed and FramedWrite type…
Encoder trait to take a generic Item parameter, which allows
codec writers to pass references into Framed and FramedWrite types. ([#1746])Framed::with_capacity. ([#2215])This represents a 1.0 beta release. APIs are polished and future-proofed. APIs not included for 1.0 stabilization have been removed.
Biggest changes are:
rt-core and rt-util are combined to rtrt-threaded is renamed to rt-multi-thread to match builder APItcp, udp, uds, dns are combined to net.parking_lot is included with fullAsyncRead trait now takes ReadBuf in order to safely handle reading
into uninitialized memory (#2758).Runtime::block_on now takes &self (#2782).watch reworked to decouple receiving a change notification from
receiving the value (#2814, #2806).Notify::notify is renamed to notify_one (#2822).Child::kill is now an async fn that cleans zombies (#2823).const fn constructors as possible (#2833, #2790)&self (#2828, #2919, #2934).mpsc channel supports send with &self (#2861).delay_for and delay_until to sleep and sleep_until (#2826).mio 0.7 (#2893).AsyncSeek trait is tweaked (#2885).File operations take &self (#2930).#[tokio::main] macro polish (#2876)Runtime::enter uses an RAII guard instead of a closure (#2954).from_std function on all sockets no longer sets socket into non-blocking mode (#2893)map function to lock guards (#2445).blocking_recv and blocking_send fns to mpsc for use outside of Tokio (#2685).Builder::thread_name_fn for configuring thread names (#1921).FromRawFd and FromRawHandle for File (#2792).Child::wait and Child::try_wait (#2796).task::JoinHandle::abort forcibly cancels a spawned task (#2474).RwLock write guard to read guard downgrading (#2733).poll_* functions that take &self to all net types (#2845)get_mut() for Mutex, RwLock (#2856).mpsc::Sender::closed() waits for Receiver half to close (#2840).mpsc::Sender::is_closed() returns true if Receiver half is closed (#2726).iter and iter_mut to StreamMap (#2890).AsRawSocket on windows (#2911).TcpSocket creates a socket without binding or listening (#2920).AsyncRead, AsyncWrite traits (#2882).mio is removed from the public API. PollEvented and Registration are
removed (#2893).bytes from public API. Buf and BufMut implementation are
removed (#2908).DelayQueue is moved to tokio-util (#2897).stdout and stderr buffering on windows (#2734).[#3487]: https://github.com/tokio-rs/tokio/pull/3487 [#3464]: https://github.com/tokio-rs/tokio/pull/3464 [#3463]: https://github.com/tokio-rs/tokio/p
A major breaking change. Most implementation and APIs have changed one way or another. This changelog entry contains a highlight
async / await.tokio-* crates are collapsed into this crate.tokio::spawn returns a JoinHandle.bytes 0.5tokio::codec is moved to tokio-util.timer and net drivers are removed, use Runtime insteadcurrent_thread runtime is removed, use tokio::runtime::Runtime with
basic_scheduler instead.Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →