NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #1955 most downloaded on crates.io
Timer facilities for Tokio
Last release 7 years ago
no release in 18 months
Release timing varies
gaps range from 9 days to 3 months
Nearly every release is documented
notes for 16 of 16 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
22 releases · first in 2017
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
One column per quarter.
Nothing published for this version
Nothing published for this version
macros: unresolved import in pin! ([#2281]).
pin! (#2281).net: UnixStream::poll_shutdown should call shutdown(Write) ([#2245]).
UnixStream::poll_shutdown should call shutdown(Write) (#2245).EPOLLERR (#2218).block_in_place and shutting down the
runtime (#2119).core_threads not specified (#2238).watch::Receiver struct size (#2191).$MAX-1 (#2184).DelayQueue after inserting new delay (#2217).pin! variant that assigns to identifier and pins (#2274).Stream for Listener types (#2275).Runtime::shutdown_timeout waits for runtime to shutdown for specified
duration (#2186).StreamMap merges streams and can insert / remove streams at
runtime (#2185).StreamExt::skip() skips a fixed number of items (#2204).StreamExt::skip_while() skips items based on a predicate (#2205).Notify provides basic async / await task notification (#2210).Mutex::into_inner retrieves guarded data (#2250).mpsc::Sender::send_timeout sends, waiting for up to specified duration
for channel capacity (#2227).Ord and Hash for Instant (#2239).timer::set_default, which functions like timer::with_default, but
returns a drop guard (#1725).clock::set_default, which functions like clock::with_default, but
returns a drop guard (#1725).docs: misc fixes and tweaks ([#2155], [#2103], [#2027], [#2167], [#2175]).
#[tokio::main] method (#2177).broadcast potential lost notifications (#2135).parking_lot internally (#2164).fs::copy, an async version of std::fs::copy (#2079).select! waits for the first branch to complete (#2152).join! waits for all branches to complete (#2158).try_join! waits for all branches to complete or the first error (#2169).pin! pins a value to the stack (#2163).ReadHalf::poll() and ReadHalf::poll_peak (#2151)StreamExt::timeout() sets a per-item max duration (#2149).StreamExt::fold() applies a function, producing a single value. (#2122).Eq, PartialEq for oneshot::RecvError (#2168).JoinError cause (#2051).Handle::timeout API, replacing the deprecated Handle::deadline (#1074).remove AsyncBufRead from BufStream impl block ([#2108]).
#[tokio::main] when rt-core feature flag is not enabled (#2139).AsyncBufRead from BufStream impl block (#2108).AsyncRead incorrectly (#2030).BufStream::with_capacity (#2125).From and Default for RwLock (#2089).io::ReadHalf::is_pair_of checks if provided WriteHalf is for the same
underlying object (#1762, #2144).runtime::Handle::try_current() returns a handle to the current runtime (#2118).stream::empty() returns an immediately ready empty stream (#2092).stream::once(val) returns a stream that yields a single value: val (#2094).stream::pending() returns a stream that never becomes ready (#2092).StreamExt::chain() sequences a second stream after the first completes (#2093).StreamExt::collect() transform a stream into a collection (#2109).StreamExt::fuse ends the stream after the first None (#2085).StreamExt::merge combines two streams, yielding values as they become ready (#2091).AsyncSeek impl for File ([#1986]).
DelayQueue timing logic when inserting / resetting a delay (#851, #863).depend on new version of tokio-macros.
tokio-macros.Clone for delay_queue::Key (#730).potential deadlock when dropping basic_scheduler Runtime.
basic_scheduler Runtime.spawn_blocking from within a spawn_blocking (#2006).Runtime instance in a thread-local (#2011).Waker::will_wake to return true when tasks match (#2045).time::advance runs pending tasks before changing the time (#2059).net::lookup_host maps a T: ToSocketAddrs to a stream of SocketAddrs (#1870).process::Child fields are made public to match std (#2014).Stream for sync::broadcast::Receiver (#2012).sync::RwLock provides an asynchronous read-write lock (#1699).runtime::Handle::current returns the handle for the current runtime (#2040).StreamExt::filter filters stream values according to a predicate (#2001).StreamExt::filter_map simultaneously filter and map stream values (#2001).StreamExt::try_next convenience for streams of Result<T, E> (#2005).StreamExt::take limits a stream to a specified number of values (#2025).StreamExt::take_while limits a stream based on a predicate (#2029).StreamExt::all tests if every element of the stream matches a predicate (#2035).StreamExt::any tests if any element of the stream matches a predicate (#2034).task::LocalSet.await runs spawned tasks until the set is idle (#1971).time::DelayQueue::len returns the number entries in the queue (#1755).#[tokio::main] and #[tokio::test] (#2022).Timeout on error bug (#648).fs::File::seek API regression ([#1991]).
fs::File::seek API regression (#1991).Default for timer::Handle (#553)DelayQueue utility (#550)Delay struct (#554)Timeout, deprecate Deadline (#558)runtime::Builder::num_threads is deprecated ([#1977]).
io::AsyncSeek trait (#1924).Mutex::try_lock (#1939)mpsc::Receiver::try_recv and mpsc::UnboundedReceiver::try_recv (#1939).writev support for TcpStream (#1956).time::throttle for throttling streams (#1949).Stream for time::DelayQueue (#1975).sync::broadcast provides a fan-out channel (#1943).sync::Semaphore provides an async semaphore (#1973).stream::StreamExt provides stream utilities (#1962).sync::MutexGuard debug output (#1961).runtime::Builder::core_threads and
runtime::Builder::max_threads. runtime::Builder::num_threads is
deprecated (#1977).sync::Mutex deadlock when lock() future is dropped early ([#1898]).
sync::Mutex deadlock when lock() future is dropped early (#1898).sleep function for easy interval delays (#347).clock::now(), a configurable source of time (#381).read / write integers using AsyncReadExt and AsyncWriteExt ([#1863]).
AsyncReadExt and AsyncWriteExt (#1863).read_buf / write_buf for reading / writing Buf / BufMut (#1881).TcpStream::poll_peek - pollable API for performing TCP peek (#1864).sync::oneshot::error::TryRecvError provides variants to detect the error
kind (#1874).LocalSet::block_on accepts !'static task (#1882).task::JoinError is now Sync (#1888).tokio::time::Instant and
std::time::Instant (#1904).API docs for TcpListener::incoming, UnixListener::incoming ([#1831]).
A major breaking change. Most implementation and APIs have changed one way or another. This changelog entry contains a highlight
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.Introduce Tokio Runtime ([#141])
CurrentThread for more flexible usage of current thread executor (#141).- Doc fixes
PartialEq + Eq for TimerError.Debug implementations.Initial crate released based on RFC.
Your coding agent can read these notes before it upgrades. Set up the MCP server →