PackageTrack
Sign in Get early access

futures-task

Tools for working with tasks.

0.3.34 837M downloads/mo #78 most downloaded on crates.io rust-lang/futures-rs

What this package is like to depend on

Last release 12 days ago

11 Aug 2026

Release timing varies

gaps range from 2 weeks to 1.4 years

Nearly every release is documented

notes for 33 of 34 stable releases

2 versions withdrawn

withdrawn after publishing

7 years old

36 releases · first in 2019

3 releases in the last 12 months

see the full history below

Release timeline

36 releases · Jul 2019 to Aug 2026
2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 36
  1. 0.3.34 11 Aug 2026
    Release notes
    • Preserve cloned waker identity. (#3032)
    • Updato syn to 3. (#3028)
    Open source →
    Release notes
    • Preserve cloned waker identity. (#3032)
    • Updato syn to 3. (#3028)
    Open source →
  2. 0.3.33 18 Jul 2026
    Release notes
    • Fix ReadLine's soundness issue regarding to exception safety. (#3020)
    • Fix unsound Send impl for IterPinRef and Iter. (#3003)
    • Fix stacked borrows violation in compat01as03 implementation. (#3012)
    • Fix memory leak in FuturesUnordered::IntoIter. (#3005)
    • Add portable-atomic-alloc feature and use it in FuturesUnordered. (#3007)
    • Re-export alloc::task::Wake. (#3010)
    • Update spin to 0.12. (#3014)
    Open source →
    Release notes
    • Fix ReadLine's soundness issue regarding to exception safety. (#3020)
    • Fix unsound Send impl for IterPinRef and Iter. (#3003)
    • Fix stacked borrows violation in compat01as03 implementation. (#3012)
    • Fix memory leak in FuturesUnordered::IntoIter. (#3005)
    • Add portable-atomic-alloc feature and use it in FuturesUnordered. (#3007)
    • Re-export alloc::task::Wake. (#3010)
    • Update spin to 0.12. (#3014)
    Open source →
  3. 0.3.32 15 Feb 2026
    Release notes
    • Bump MSRV of utility crates to 1.71. (#2989)
    • Soft-deprecate ready! macro in favor of std::task::ready! added in Rust 1.64 (#2925)
    • Soft-deprecate pin_mut! macro in favor of std::pin::pin! added in Rust 1.68 (#2929)
    • Add FuturesOrdered::clear (#2927)
    • Add mpsc::*Receiver::recv (#2947)
    • Add mpsc::*Receiver::try_recv and deprecate mpsc::*Receiver::::try_next (#2944)
    • Implement FusedStream for sink::With (#2948)
    • Add no_std support for shared (#2868)
    • Make Mutex::new() const (#2956)
    • Add #[clippy::has_significant_drop] to guards (#2967)
    • Remove dependency to pin-utils (#2929)
    • Remove dependency on num_cpus (#2946)
    • Performance improvements (#2983)
    • Documentation improvements (#2925, #2926, #2940, #2971)
    Open source →
    Release notes
    • Bump MSRV of utility crates to 1.71. (#2989)
    • Soft-deprecate ready! macro in favor of std::task::ready! added in Rust 1.64 (#2925)
    • Soft-deprecate pin_mut! macro in favor of std::pin::pin! added in Rust 1.68 (#2929)
    • Add FuturesOrdered::clear (#2927)
    • Add mpsc::*Receiver::recv (#2947)
    • Add mpsc::*Receiver::try_recv and deprecate mpsc::*Receiver::::try_next (#2944)
    • Implement FusedStream for sink::With (#2948)
    • Add no_std support for shared (#2868)
    • Make Mutex::new() const (#2956)
    • Add #[clippy::has_significant_drop] to guards (#2967)
    • Remove dependency to pin-utils (#2929)
    • Remove dependency on num_cpus (#2946)
    • Performance improvements (#2983)
    • Documentation improvements (#2925, #2926, #2940, #2971)
    Open source →
  4. 0.3.31 05 Oct 2024
    Release notes
    • Fix use after free of task in FuturesUnordered when dropped future panics (#2886)
    • Fix soundness bug in task::waker_ref (#2830)
      This is a breaking change but allowed because it is soundness bug fix.
    • Fix bugs in AsyncBufRead::read_line and AsyncBufReadExt::lines (#2884)
    • Fix parsing issue in select!/select_biased! (#2832)
      This is technically a breaking change as it will now reject a very odd undocumented syntax that was previously accidentally accepted.
    • Work around issue due to upstream Waker::will_wake change (#2865)
    • Add stream::Iter::{get_ref,get_mut,into_inner} (#2875)
    • Add future::AlwaysReady (#2825)
    • Relax trait bound on non-constructor methods of io::{BufReader,BufWriter} (#2848)
    Open source →
    Release notes
    • Fix use after free of task in FuturesUnordered when dropped future panics (#2886)
    • Fix soundness bug in task::waker_ref (#2830) This is a breaking change but allowed because it is soundness bug fix.
    • Fix bugs in AsyncBufRead::read_line and AsyncBufReadExt::lines (#2884)
    • Fix parsing issue in select!/select_biased! (#2832) This is technically a breaking change as it will now reject a very odd undocumented syntax that was previously accidentally accepted.
    • Work around issue due to upstream Waker::will_wake change (#2865)
    • Add stream::Iter::{get_ref,get_mut,into_inner} (#2875)
    • Add future::AlwaysReady (#2825)
    • Relax trait bound on non-constructor methods of io::{BufReader,BufWriter} (#2848)
    Open source →
  5. 0.3.30 24 Dec 2023
    Release notes
    • Add {BiLock,SplitStream,SplitSink,ReadHalf,WriteHalf}::is_pair_of (#2797)
    • Fix panic in FuturesUnordered::clear (#2809)
    • Fix panic in AsyncBufReadExt::fill_buf (#2801, #2812)
    • Improve support for targets without atomic CAS (#2811)
    • Remove build scripts (#2811)
    Open source →
    Release notes

    Note: This release of futures-util has been yanked due to a bug fixed in 0.3.31 and a compile failure with futures-task 0.3.31 and later.

    • Add {BiLock,SplitStream,SplitSink,ReadHalf,WriteHalf}::is_pair_of (#2797)
    • Fix panic in FuturesUnordered::clear (#2809)
    • Fix panic in AsyncBufReadExt::fill_buf (#2801, #2812)
    • Improve support for targets without atomic CAS (#2811)
    • Remove build scripts (#2811)
    Open source →
  6. 0.3.29 26 Oct 2023
    Release notes
    • Add TryStreamExt::try_ready_chunks (#2757)
    • Add TryStreamExt::{try_all,try_any} (#2783)
    • Add UnboundedSender::{len,is_empty} (#2750)
    • Fix Sync impl of FuturesUnordered (#2788)
    • Fix infinite loop caused by invalid UTF-8 bytes (#2785)
    • Fix build error with -Z minimal-versions (#2761)
    Open source →
    Release notes

    Note: This release of futures-util has been yanked due to a bug fixed in 0.3.31 and a compile failure with futures-task 0.3.31 and later.

    • Add TryStreamExt::try_ready_chunks (#2757)
    • Add TryStreamExt::{try_all,try_any} (#2783)
    • Add UnboundedSender::{len,is_empty} (#2750)
    • Fix Sync impl of FuturesUnordered (#2788)
    • Fix infinite loop caused by invalid UTF-8 bytes (#2785)
    • Fix build error with -Z minimal-versions (#2761)
    Open source →
  7. 0.3.28 30 Mar 2023
    Release notes
    • Update to syn 2. This raises MSRV of utility crates to 1.56. (#2730, #2733)
    • Fix bug in FlattenUnordered (#2726, #2728)
    Open source →
    Release notes

    Note: This release of futures-util has been yanked due to a bug fixed in 0.3.31 and a compile failure with futures-task 0.3.31 and later.

    • Update to syn 2. This raises MSRV of utility crates to 1.56. (#2730, #2733)
    • Fix bug in FlattenUnordered (#2726, #2728)
    Open source →
  8. 0.3.27 11 Mar 2023
    Release notes
    • Add TryFlattenUnordered (#2577, #2590, #2606, #2607)
    • Add AbortHandle::is_aborted (#2710)
    • Add AbortRegistration::handle (#2712)
    • Make BiLock strict-provenance compatible (#2716)
    Open source →
    Release notes

    Note: This release of futures-util has been yanked due to a bug fixed in 0.3.31 and a compile failure with futures-task 0.3.31 and later.

    • Add TryFlattenUnordered (#2577, #2590, #2606, #2607)
    • Add AbortHandle::is_aborted (#2710)
    • Add AbortRegistration::handle (#2712)
    • Make BiLock strict-provenance compatible (#2716)
    Open source →
  9. 0.3.26 30 Jan 2023
    Release notes
    • Add Either::as_pin_mut and Either::as_pin_ref (#2691)
    • Add Shared::ptr_eq and Shared::ptr_hash (#2691)
    • Implement FusedStream for Buffered (#2676)
    • Implement FusedStream for all streams in ReadyChunks (#2693)
    • Fix bug in FuturesOrdered::push_front (#2664)
    • Remove Fut::Output: Clone bounds from some Shared methods (#2662)
    • Remove T: Debug bounds from Debug implementations of mpsc and oneshot types (#2666, #2667)
    Open source →
    Release notes

    Note: This release of futures-util has been yanked due to a bug fixed in 0.3.31 and a compile failure with futures-task 0.3.31 and later.

    • Add Either::as_pin_mut and Either::as_pin_ref (#2691)
    • Add Shared::ptr_eq and Shared::ptr_hash (#2691)
    • Implement FusedStream for Buffered (#2676)
    • Implement FusedStream for all streams in ReadyChunks (#2693)
    • Fix bug in FuturesOrdered::push_front (#2664)
    • Remove Fut::Output: Clone bounds from some Shared methods (#2662)
    • Remove T: Debug bounds from Debug implementations of mpsc and oneshot types (#2666, #2667)
    Open source →
  10. 0.3.25 20 Oct 2022
    Release notes
    • Fix soundness issue in join! and try_join! macros (#2649)
    • Implement Clone for sink::Drain (#2650)
    Open source →
    Release notes

    Note: This release of futures-util has been yanked due to a bug fixed in 0.3.31 and a compile failure with futures-task 0.3.31 and later.

    • Fix soundness issue in join! and try_join! macros (#2649)
    • Implement Clone for sink::Drain (#2650)
    Open source →
  11. 0.3.24 29 Aug 2022
    Release notes

    Note: This release of futures-util has been yanked due to a bug fixed in 0.3.31 and a compile failure with futures-task 0.3.31 and later.

    • Fix incorrect termination of select_with_strategy streams (#2635)
    Open source →
  12. 0.3.23 14 Aug 2022
    Release notes

    Note: This release of futures-util has been yanked due to a bug fixed in 0.3.31 and a compile failure with futures-task 0.3.31 and later.

    • Work around MSRV increase due to a cargo bug.
    Open source →
  13. 0.3.22 14 Aug 2022
    Release notes

    Note: This release of futures-util has been yanked due to a bug fixed in 0.3.31 and a compile failure with futures-task 0.3.31 and later.

    • Fix Sync impl of BiLockGuard (#2570)
    • Fix partial iteration in FuturesUnordered (#2574)
    • Fix false detection of inner panics in Shared (#2576)
    • Add Mutex::lock_owned and Mutex::try_lock_owned (#2571)
    • Add io::copy_buf_abortable (#2507)
    • Remove Unpin bound from TryStreamExt::into_async_read (#2599)
    • Make run_until_stalled handle self-waking futures (#2593)
    • Use FuturesOrdered in try_join_all (#2556)
    • Fix orderings in LocalPool waker (#2608)
    • Fix stream::Chunk adapters size hints (#2611)
    • Add push_front and push_back to FuturesOrdered (#2591)
    • Deprecate FuturesOrdered::push in favor of FuturesOrdered::push_back (#2591)
    • Performance improvements (#2583, #2626)
    • Documentation improvements (#2579, #2604, #2613)
    Open source →
  14. 0.3.21 06 Feb 2022
    Release notes

    Note: This release of futures-util has been yanked due to a bug fixed in 0.3.31 and a compile failure with futures-task 0.3.31 and later.

    • Fix potential data race in FlattenUnordered that introduced in 0.3.20 (#2566)
    Open source →
  15. 0.3.20 06 Feb 2022 withdrawn
    Release notes

    Note: This release has been yanked due to a bug fixed in 0.3.21.

    • Fix stacked borrows violations when -Zmiri-tag-raw-pointers is enabled. This raises MSRV of futures-task to 1.45. (#2548, #2550)
    • Change FuturesUnordered to respect yielding from future (#2551)
    • Add StreamExt::{flatten_unordered, flat_map_unordered} (#2083)
    Open source →
  16. 0.3.19 18 Dec 2021
    Release notes

    Note: This release of futures-util has been yanked due to a bug fixed in 0.3.31 and a compile failure with futures-task 0.3.31 and later.

    • Remove unstable read-initializer feature (#2534)
    • Fix panic in FuturesUnordered (#2535)
    • Fix compatibility issue with FuturesUnordered and tokio's cooperative scheduling (#2527)
    • Add StreamExt::count (#2495)
    Open source →
  17. 0.3.18 23 Nov 2021 withdrawn
    Release notes

    Note: This release has been yanked. See #2529 for details.

    • Fix unusable Sink implementation on stream::Scan (#2499)
    • Make task::noop_waker_ref available without std feature (#2505)
    • Add async LineWriter (#2477)
    • Remove dependency on proc-macro-hack. This raises MSRV of utility crates to 1.45. (#2520)
    Open source →
  18. 0.3.17 30 Aug 2021
    Release notes

    Note: This release of futures-util has been yanked due to a bug fixed in 0.3.31 and a compile failure with futures-task 0.3.31 and later.

    • Use FuturesOrdered in join_all (#2412)
    • Add {future, stream}::poll_immediate (#2452)
    • Add stream_select! macro (#2262)
    • Implement Default for OptionFuture (#2471)
    • Add Peekable::{peek_mut, poll_peek_mut} (#2488)
    • Add BufReader::seek_relative (#2489)
    Open source →
  19. 0.3.16 23 Jul 2021
    Release notes

    Note: This release of futures-util has been yanked due to a bug fixed in 0.3.31 and a compile failure with futures-task 0.3.31 and later.

    • Add TryStreamExt::try_chunks (#2438)
    • Add StreamExt::{all, any} (#2460)
    • Add stream::select_with_strategy (#2450)
    • Update to new io_slice_advance interface (#2454)
    Open source →
  20. 0.3.15 11 May 2021
    Release notes

    Note: This release of futures-util has been yanked due to a bug fixed in 0.3.31 and a compile failure with futures-task 0.3.31 and later.

    • Use #[proc_macro] at Rust 1.45+ to fix an issue where proc macros don't work with rust-analyzer (#2407)
    • Support targets that do not have atomic CAS on stable Rust (#2400)
    • futures-test: Add async #[test] function attribute (#2409)
    • Add stream::abortable (#2410)
    • Add FuturesUnordered::clear (#2415)
    • Implement IntoIterator for FuturesUnordered (#2423)
    • Implement Send and Sync for FuturesUnordered iterators (#2416)
    • Make FuturesUnordered::iter_pin_ref public (#2423)
    • Add SelectAll::clear (#2430)
    • Add SelectAll::{iter, iter_mut} (#2428)
    • Implement IntoIterator for SelectAll (#2428)
    • Implement Clone for WeakShared (#2396)
    Open source →
  21. 0.3.14 10 Apr 2021
    Release notes

    Note: This release of futures-util has been yanked due to a bug fixed in 0.3.31 and a compile failure with futures-task 0.3.31 and later.

    • Add future::SelectAll::into_inner (#2363)
    • Allow calling UnboundedReceiver::try_next after None (#2369)
    • Reexport non-Ext traits from the root of futures_util (#2377)
    • Add AsyncSeekExt::stream_position (#2380)
    • Add stream::Peekable::{next_if, next_if_eq} (#2379)
    Open source →
  22. 0.3.13 23 Feb 2021
    Release notes

    Note: This release of futures-util has been yanked due to a bug fixed in 0.3.31 and a compile failure with futures-task 0.3.31 and later.

    • Mitigated starvation issues in FuturesUnordered (#2333)
    • Fixed race with dropping mpsc::Receiver (#2304)
    • Added Shared::{strong_count, weak_count} (#2346)
    • Added no_std support for task::noop_waker_ref (#2332)
    • Implemented Stream::size_hint for Either (#2325)
    Open source →
  23. 0.3.12 15 Jan 2021
    Release notes

    Note: This release of futures-util has been yanked due to a bug fixed in 0.3.31 and a compile failure with futures-task 0.3.31 and later.

    • Fixed Unpin impl of future::{MaybeDone, TryMaybeDone} where trait bounds were accidentally added in 0.3.9. (#2317)
    Open source →
  24. 0.3.11 14 Jan 2021
    Release notes

    Note: This release of futures-util has been yanked due to a bug fixed in 0.3.31 and a compile failure with futures-task 0.3.31 and later.

    • Fixed heap buffer overflow in AsyncReadExt::{read_to_end, read_to_string} (#2314)
    Open source →
  25. 0.3.10 13 Jan 2021
    Release notes

    Note: This release has been yanked. See #2310 for details.

    • Fixed type-inference in sink::unfold by specifying more of its types (breaking change -- see #2311)
    Open source →
  26. 0.3.9 08 Jan 2021
    Release notes

    Note: This release has been yanked. See #2310 for details.

    • Significantly improved compile time when async-await crate feature is disabled (#2273)
    • Added stream::repeat_with (#2279)
    • Added StreamExt::unzip (#2263)
    • Added sink::unfold (#2268)
    • Added SinkExt::feed (#2155)
    • Implemented FusedFuture for oneshot::Receiver (#2300)
    • Implemented Clone for sink::With (#2290)
    • Re-exported MapOkOrElse, MapInto, OkInto, TryFlatten, WriteAllVectored (#2275)
    Open source →
  27. 0.3.8 09 Nov 2020
    Release notes

    Note: This release has been yanked. See #2310 for details.

    • Switched proc-macros to use native #[proc_macro] at Rust 1.45+ (#2243)
    • Added WeakShared (#2169)
    • Added TryStreamExt::try_buffered (#2245)
    • Added StreamExt::cycle (#2252)
    • Implemented Clone for stream::{Empty, Pending, Repeat, Iter} (#2248, #2252)
    • Fixed panic in some TryStreamExt combinators (#2250)
    Open source →
  28. 0.3.7 23 Oct 2020
    Release notes

    Note: This release has been yanked. See #2310 for details.

    • Fixed unsoundness in MappedMutexGuard (#2240)
    • Re-exported TakeUntil (#2235)
    • futures-test: Prevent double panic in panic_waker (#2236)
    Open source →
  29. 0.3.6 05 Oct 2020
    Release notes

    Note: This release has been yanked. See #2310 for details.

    • Fixed UB due to missing 'static on task::waker (#2206)
    • Added AsyncBufReadExt::fill_buf (#2225)
    • Added TryStreamExt::try_take_while (#2212)
    • Added is_connected_to method to mpsc::{Sender, UnboundedSender} (#2179)
    • Added is_connected_to method to oneshot::Sender (#2158)
    • Implement FusedStream for FuturesOrdered (#2205)
    • Fixed documentation links
    • Improved documentation
    • futures-test: Added track_closed method to AsyncWriteTestExt and SinkTestExt (#2159)
    • futures-test: Implemented more traits for InterleavePending (#2208)
    • futures-test: Implemented more traits for AssertUnmoved (#2208)
    Open source →
  30. 0.3.5 08 May 2020
    Release notes

    Note: This release has been yanked. See #2310 for details.

    • Added StreamExt::flat_map.
    • Added StreamExt::ready_chunks.
    • Added *_unpin methods to SinkExt.
    • Added a cancellation() future to oneshot::Sender.
    • Added reunite method to ReadHalf and WriteHalf.
    • Added Extend implementations for Futures(Un)Ordered and SelectAll.
    • Added support for reexporting the join! and select! macros.
    • Added no_std support for the pending! and poll! macros.
    • Added Send and Sync support for AssertUnmoved.
    • Fixed a bug where Shared wasn't relinquishing control to the executor.
    • Removed the Send bound on the output of RemoteHandle.
    • Relaxed bounds on FuturesUnordered.
    • Reorganized internal tests to work under different --features.
    • Reorganized the bounds on StreamExt::forward.
    • Removed and replaced a large amount of internal unsafe.
    Open source →
  31. 0.3.4 07 Feb 2020
    Release notes

    Note: This release has been yanked. See #2310 for details.

    • Fixed missing Drop for UnboundedReceiver (#2064)
    Open source →
  32. 0.3.3 05 Feb 2020
    Release notes

    Note: This release has been yanked. See #2310 for details.

    • Fixed compatibility issue with pinned facade (#2062)
    Open source →
  33. 0.3.2 04 Feb 2020
    Release notes

    Note: This release has been yanked. See #2310 for details.

    • Improved buffering performance of SplitSink (#1969)
    • Added select_biased! macro (#1976)
    • Added hash_receiver method to mpsc channel (#1962)
    • Added stream::try_unfold (#1977)
    • Fixed bug with zero-size buffers in vectored IO (#1998)
    • AtomicWaker::new() is now const fn (#2007)
    • Fixed bug between threadpool and user park/unparking (#2010)
    • Added stream::Peekable::peek (#2021)
    • Added StreamExt::scan (#2044)
    • Added impl of AsyncRead/Write for BufReader/Writer (#2033)
    • Added impl of Spawn and LocalSpawn for Arc<impl Spawn and Rc<impl Spawn> (#2039)
    • Fixed Sync issues with FuturesUnordered (#2054)
    • Added into_inner method for future::Ready (#2055)
    • Added MappedMutexGuard API (#2056)
    • Mitigated starvation issues in FuturesUnordered (#2049)
    • Added TryFutureExt::map_ok_or_else (#2058)
    Open source →
  34. 0.3.1 07 Nov 2019
    Release notes

    Note: This release has been yanked. See #2310 for details.

    • Fix signature of SpawnExt and LocalSpawnExt trait (breaking change -- see #1959)
    Open source →
  35. 0.3.0 06 Nov 2019
    Release notes

    Note: This release has been yanked. See #2310 for details.

    • Stable release along with stable async/await!
    • Added async/await to default features (#1953)
    • Changed Spawn trait and FuturesUnordered::push to take &self (#1950)
    • Moved Spawn and FutureObj out of futures-core and into futures-task (#1925)
    • Changed case convention for feature names (#1937)
    • Added executor feature (#1949)
    • Moved copy_into/copy_buf_into (#1948)
    • Changed SinkExt::send_all to accept a TryStream (#1946)
    • Removed ThreadPool::run (#1944)
    • Changed to use our own definition of io::Cursor (#1943)
    • Removed BufReader::poll_seek_relative (#1938)
    • Changed skip to take a usize rather than u64 (#1931)
    • Removed Stream impl for VecDeque (#1930)
    • Renamed Peekable::peek to poll_peek (#1928)
    • Added immutable iterators for FuturesUnordered (#1922)
    • Made ThreadPool optional (#1910)
    • Renamed oneshot::Sender::poll_cancel to poll_canceled (#1908)
    • Added some missing Clone implementations
    • Documentation fixes
    Open source →
  36. 0.0.0 29 Jul 2019

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive