-
0.1.4
Version 0.1.4 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/alexcrichton/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
-
0.1.3
Version 0.1.3 * 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
-
futures-cpupool-0.1.2
Version 0.1.2 * Add a `Builder` for fine-grained configuration * Assert number of threads is nonzero * Annotate `CpuFuture` with `#[must_use]`
-
0.1.2
Version 0.1.2 * 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