NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #384 most downloaded on crates.io
Futures, streams, and async I/O combinators
Last release 1 years ago
04 Aug 2025
Release timing varies
gaps range from 8 days to 1.8 years
Nearly every release is documented
notes for 38 of 39 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
39 releases · first in 2020
One column per quarter.
Fix docs for once_future and stop_after_future .
once_future and stop_after_future. (#131)Add Stream::map_while() combinator.
Remove Unpin bound from the Lines I/O adapter.
Unpin bound from the Lines I/O adapter. (#113)Add a "fuse" method that makes it so a Future returns Poll::Pending forever after it returns Poll::Pending once.
Add StreamExt::drain for draining objects from a Stream without waiting ( #70 ).
StreamExt::drain for draining objects from a Stream without waiting (#70).Relax Unpin bounds on io::copy .
Make it so read_line and other futures use a naive implementation of byte searching unless the memchr feature is enabled. This prevents needing to com
read_line and other futures use a naive implementation of bytememchr feature is enabled. This prevents needing tomemchr crate unless it is desired. (#77)Remove dependency on the waker-fn crate.
waker-fn crate. (#81)Breaking: Expose future::{ready, pending} from core instead of defining our own.
future::{ready, pending} from core instead of definingTryZip and Zip combinators are modified to have a cleanerno_std by providing your own seed. (#75)Unbind Debug implementations of BufReader and BufWriter.
- Implement BufRead for BlockOn
BufRead for BlockOn- Update pin-project-lite.
pin-project-lite.- Improve docs for ready!.
ready!.- Fix some typos.
Deprecate trait re-exports in the root module.
prelude module.Fix compilation errors with Rust 1.42.0 and 1.45.2
- Add io::split().
io::split().Add AsyncBufReadExt::fill_buf().
FutureExt::poll().StreamExt::poll_next().AsyncBufReadExt::fill_buf().AsyncBufReadExt::consume().Add BoxedReader and BoxedWriter.
BoxedReader and BoxedWriter.- Implement AsyncRead for Bytes. - Add StreamExt::then().
AsyncRead for Bytes.StreamExt::then().- Add FutureExt::catch_unwind().
FutureExt::catch_unwind().Add stream::race() and StreamExt::race().
stream::race() and StreamExt::race().- Add alloc Cargo feature.
alloc Cargo feature.Disable waker-fn dependency on #![no_std] targets.
future::or().FutureExt::race().waker-fn dependency on #![no_std] targets.Fix compilation errors on #![no_std] systems.
#![no_std] systems.StreamExt::try_next().StreamExt::partition().StreamExt::for_each().StreamExt::try_for_each().StreamExt::zip().StreamExt::unzip().StreamExt::nth().StreamExt::last().StreamExt::find().StreamExt::find_map().StreamExt::position().StreamExt::all().StreamExt::any().StreamExt::scan().StreamExt::flat_map().StreamExt::flatten().StreamExt::skip().StreamExt::skip_while().Parametrize FutureExt::boxed() and FutureExt::boxed_local() over a lifetime.
StreamExt::take().StreamExt::take_while().StreamExt::step_by().StreamExt::fuse().StreamExt::chain().StreamExt::cloned().StreamExt::copied().StreamExt::cycle().StreamExt::enumeraate().StreamExt::inspect().FutureExt::boxed() and FutureExt::boxed_local() over a lifetime.StreamExt::boxed() and StreamExt::boxed_local() over a lifetime.Rename future::join() to future::zip().
StreamExt::map().StreamExt::count().StreamExt::filter().StreamExt::filter_map().future::join() to future::zip().future::try_join() to future::try_zip().- Update parking to v2.0.0
parking to v2.0.0- Add AssertAsync.
AssertAsync.Put #[must_use] on all futures and streams.
FutureExt::or().#[must_use] on all futures and streams.- Fix lints about unsafe code.
Add blocking APIs (block_on() and BlockOn).
block_on() and BlockOn).Add boxed(), boxed_local(), Boxed, and BoxedLocal.
boxed(), boxed_local(), Boxed, and BoxedLocal.- Add fold() and try_fold().
fold() and try_fold().- Add future::race(). - Fix a bug in BufReader.
future::race().BufReader.Add future::join(), future::try_join(), and AsyncWriteExt::close().
future::join(), future::try_join(), and AsyncWriteExt::close().- Lots of new APIs.
- Initial version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →