PackageTrack
Sign in Get early access

futures-cpupool

An implementation of thread pools which hand out futures to the results of the computation on the threads themselves.

0.1.8 15M downloads/mo #2466 most downloaded on crates.io alexcrichton/futures-rs

What this package is like to depend on

Last release 9 years ago

no release in 18 months

Release timing varies

gaps range from 3 weeks to 6 months

Nearly every release is documented

notes for 8 of 8 stable releases

1 version withdrawn

withdrawn after publishing

10 years old

9 releases · first in 2016

0 releases in the last 12 months

see the full history below

Release timeline

9 releases · Aug 2016 to Jan 2018
2017 2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 9
  1. 0.1.8 02 Jan 2018
    Release notes
    • Fix some race conditions in the Shared implementation
    • Add Stream::take_while
    • Fix an unwrap in stream::futures_unordered
    • Generalize Stream::for_each
    • Add Stream::chain
    • Add stream::repeat
    • Relax &mut self to &self in UnboundedSender::send
    Open source →
  2. 0.1.7 12 Oct 2017
    Release notes
    • Add a Future::shared method for creating a future that can be shared amongst threads by cloning the future itself. All derivative futures will resolve to the same value once the original future has been resolved.
    • Add a FutureFrom trait for future-based conversion
    • Fix a wakeup bug in Receiver::close
    • Add future::poll_fn for quickly adapting a Poll-based function to a future.
    • Add an Either enum with two branches to easily create one future type based on two different futures created on two branches of control flow.
    • Remove the 'static bound on Unpark
    • Optimize send_all and forward to send as many items as possible before calling poll_complete.
    • Unify the return types of the ok, err, and result future to assist returning different varieties in different branches of a function.
    • Add CpuFuture::forget to allow the computation to continue running after a drop.
    • Add a stream::futures_unordered combinator to turn a list of futures into a stream representing their order of completion.
    Open source →
  3. 0.1.6 14 Sep 2017
    Release notes
    • Fix Clone bound on the type parameter on UnboundedSender
    Open source →
  4. 0.1.5 21 Mar 2017
    Release notes
    • Fix #![no_std] support
    Open source →
  5. 0.1.4 15 Mar 2017
    Release notes

    This is quite a large release relative to the previous point releases! As with all 0.1 releases, this release should be fully compatible with the 0.1.3 release. If any incompatibilities are discovered please file an issue!

    The largest changes in 0.1.4 are the addition of a Sink trait coupled with a reorganization of this crate. Note that all old locations for types/traits still exist, they're just deprecated and tagged with #[doc(hidden)].

    The new Sink trait is used to represent types which can periodically over time accept items, but may take some time to fully process the item before another can be accepted. Essentially, a sink is the opposite of a stream. This trait will then be used in the tokio-core crate to implement simple framing by modeling I/O streams as both a stream and a sink of frames.

    The organization of this crate is to now have three primary submodules, future, stream, and sink. The traits as well as all combinator types are defined in these submodules. The traits and types like Async and Poll are then reexported at the top of the crate for convenient usage. It should be a relatively rare occasion that the modules themselves are reached into.

    Finally, the 0.1.4 release comes with a new module, sync, in the futures crate. This is intended to be the home of a suite of futures-aware synchronization primitives. Currently this is inhabited with a oneshot module (the old oneshot function), a mpsc module for a new multi-producer single-consumer channel, and a BiLock type which represents sharing ownership of one value between two consumers. This module may expand over time with more types like a mutex, rwlock, spsc channel, etc.

    Notable deprecations in the 0.1.4 release that will be deleted in an eventual 0.2 release:

    • The TaskRc type is now deprecated in favor of BiLock or otherwise Arc sharing.
    • All future combinators should be accessed through the future module, not the top-level of the crate.
    • The Oneshot and Complete types are now replaced with the sync::oneshot module.
    • Some old names like collect are deprecated in favor of more appropriately named versions like join_all
    • The finished constructor is now ok.
    • The failed constructor is now err.
    • The done constructor is now result.

    As always, please report bugs to https://github.com/rust-lang-nursery/futures-rs and we always love feedback! If you've got situations we don't cover, combinators you'd like to see, or slow code, please let us know!

    Full changelog:

    • Improve scalability of buffer_unordered combinator
    • Fix a memory ordering bug in oneshot
    • Add a new trait, Sink
    • Reorganize the crate into three primary modules
    • Add a new sync module for synchronization primitives
    • Add a BiLock sync primitive for two-way sharing
    • Deprecate TaskRc
    • Rename collect to join_all
    • Use a small vec in Events for improved clone performance
    • Add Stream::select for selecting items from two streams like merge but requiring the same types.
    • Add stream::unfold constructor
    • Add a sync::mpsc module with a futures-aware multi-producer single-consumer queue. Both bounded (with backpressure) and unbounded (no backpressure) variants are provided.
    • Renamed failed, finished, and done combinators to err, ok, and result.
    • Add Stream::forward to send all items to a sink, like Sink::send_all
    • Add Stream::split for streams which are both sinks and streams to have separate ownership of the stream/sink halves
    • Improve join_all with concurrency
    Open source →
  6. 0.1.3 12 Feb 2017
    Release notes
    • Rewrite oneshot for efficiency and removing allocations on send/recv
    • Errors are passed through in Stream::take and Stream::skip
    • Add a select_ok combinator to pick the first of a list that succeeds
    • Remove the unnecessary SelectAllNext typedef
    • Add Stream::chunks for receiving chunks of data
    • Rewrite stream::channel for efficiency, correctness, and removing allocations
    • Remove Send + 'static bounds on the stream::Empty type
    Open source →
  7. 0.1.2 04 Oct 2016
    Release notes
    • Fixed a bug in drop of FutureSender
    • Expose the channel SendError type
    • Add Future::into_stream to convert to a single-element stream
    • Add Future::flatten_to_stream to convert a future of a stream to a stream
    • impl Debug for SendError
    • Add stream::once for a one element stream
    • Accept IntoIterator in stream::iter
    • Add Stream::catch_unwind
    Open source →
  8. 0.1.1 10 Sep 2016
    Release notes

    Initial release!

    Open source →
  9. 0.1.0 01 Aug 2016 withdrawn

    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