Skip to content
Tags give the ability to mark specific points in history as being important
  • 0.1.19
    5d1adc21 · 0.1.19 Release ·
  • 0.2.0-alpha
  • 0.1.18
    92924d57 · Bump to 0.1.18 ·
    Version 0.1.18
  • futures-cpupool-0.1.8
    Version 0.1.8
  • 0.1.17
    a16b5ab6 · Bump to 0.1.17 ·
    Version 0.1.17
  • futures-cpupool-0.1.7
    Version 0.1.7
  • 0.1.16
    8961e774 · Bump to 0.1.16 ·
    Version 0.1.16
  • futures-cpupool-0.1.6
    Version 0.1.6
  • 0.1.15
    f2a5d649 · Bump to 0.1.15 ·
    Version 0.1.15
    
    * Improve performance of `BiLock` methods
    * Implement `Clone` for `FutureResult`
    * Forward `Stream` trait through `SinkMapErr`
    * Add `stream::futures_ordered` next to `futures_unordered`
    * Reimplement `Stream::buffered` on top of `stream::futures_ordered` (much more
      efficient at scale).
    * Add a `with_notify` function for abstractions which previously required
      `UnparkEvent`.
    * Add `get_ref`/`get_mut`/`into_inner` functions for stream take/skip methods
    * Add a `Clone` implementation for `SharedItem` and `SharedError`
    * Add a `mpsc::spawn` function to spawn a `Stream` into an `Executor`
    * Add a `reunite` function for `BiLock` and the split stream/sink types to
      rejoin two halves and reclaim the original item.
    * Add `stream::poll_fn` to behave similarly to `future::poll_fn`
    * Add `Sink::with_flat_map` like `Iterator::flat_map`
    * Bump the minimum Rust version to 1.13.0
    * Expose `AtomicTask` in the public API for managing synchronization around task
      notifications.
    * Unify the `Canceled` type of the `sync` and `unsync` modules.
    * Deprecate the `boxed` methods. These methods have caused more confusion than
      they've solved historically, so it's recommended to use a local extension
      trait or a local helper instead of the trait-based methods.
    * Deprecate the `Stream::merge` method as it's less ergonomic than `select`.
    * Add `oneshot::Sender::is_canceled` to test if a oneshot is canceled off a
      task.
    * Deprecates `UnboundedSender::send` in favor of a method named `unbounded_send`
      to avoid a conflict with `Sink::send`.
    * Deprecate the `stream::iter` function in favor of an `stream::iter_ok` adaptor
      to avoid the need to deal with `Result` manually.
    * Add an `inspect` function to the `Future` and `Stream` traits along the lines
      of `Iterator::inspect`
  • 0.1.14
    0dc2f6e5 · Bump to 0.1.14 ·
    Version 0.1.14
    
    This is a relatively large release of the `futures` crate, although much of it
    is from reworking internals rather than new APIs. The banner feature of this
    release is that the `futures::{task, executor}` modules are now available in
    `no_std` contexts! A large refactoring of the task system was performed in
    PR #436 to accomodate custom memory allocation schemes and otherwise remove
    all dependencies on `std` for the task module. More details about this change
    can be found on the PR itself.
    
    Other API additions in this release are:
    
    * A `FuturesUnordered::push` method was added and the `FuturesUnordered` type
      itself was completely rewritten to efficiently track a large number of
      futures.
    * A `Task::will_notify_current` method was added with a slightly different
      implementation than `Task::is_current` but with stronger guarantees and
      documentation wording about its purpose.
    * Many combinators now have `get_ref`, `get_mut`, and `into_inner` methods for
      accessing internal futures and state.
    * A `Stream::concat2` method was added which should be considered the "fixed"
      version of `concat`, this one doesn't panic on empty streams.
    * An `Executor` trait has been added to represent abstracting over the concept
      of spawning a new task. Crates which only need the ability to spawn a future
      can now be generic over `Executor` rather than requiring a
      `tokio_core::reactor::Handle`.
    
    As with all 0.1.x releases this PR is intended to be 100% backwards compatible.
    All code that previously compiled should continue to do so with these changes.
    As with other changes, though, there are also some updates to be aware of:
    
    * The `task::park` function has been renamed to `task::current`.
    * The `Task::unpark` function has been renamed to `Task::notify`, and in general
      terminology around "unpark" has shifted to terminology around "notify"
    * The `Unpark` trait has been deprecated in favor of the `Notify` trait
      mentioned above.
    * The `UnparkEvent` structure has been deprecated. It currently should perform
      the same as it used to, but it's planned that in a future 0.1.x release the
      performance will regress for crates that have not transitioned away. The
      primary primitive to replace this is the addition of a `push` function on the
      `FuturesUnordered` type. If this does not help implement your use case though,
      please let us know!
    * The `Task::is_current` method is now deprecated, and you likely want to use
      `Task::will_notify_current` instead, but let us know if this doesn't suffice!
  • 0.1.13
    ac4f467b · Bump to 0.1.13 ·
    Version 0.1.13
    
    * Add forwarding sink/stream impls for `stream::FromErr` and `sink::SinkFromErr`
    * Add `PartialEq` and `Eq` to `mpsc::SendError`
    * Reimplement `Shared` with `spawn` instead of `UnparkEvent`
  • 0.1.12
    812b7146 · Bump to 0.1.12 ·
    Version 0.1.12
    
    * Add `Stream::from_err` and `Sink::from_err`
    * Allow `SendError` to be `Clone` when possible
  • futures-cpupool-0.1.5
    Version 0.1.5
  • futures-cpupool-0.1.4
    Version 0.1.4
  • 0.1.11
    67206281 · Bump to 0.1.11 ·
    Version 0.1.11
    
    The major highlight of this release is the addition of a new "default" method on
    the `Sink` trait, `Sink::close`. This method is used to indicate to a sink that
    no new values will ever need to get pushed into it. This can be used to
    implement graceful shutdown of protocols and otherwise simply indicates to a
    sink that it can start freeing up resources.
    
    Currently this method is **not** a default method to preserve backwards
    compatibility, but it's intended to become a default method in the 0.2 series of
    the `futures` crate. It's highly recommended to audit implementations of `Sink`
    to implement the `close` method as is fit.
    
    Other changes in this release are:
    
    * A new select combinator, `Future::select2` was added for a heterogeneous
      select.
    * A `Shared::peek` method was added to check to see if it's done.
    * `Sink::map_err` was implemented
    * The `log` dependency was removed
    * Implementations of the `Debug` trait are now generally available.
    * The `stream::IterStream` type was renamed to `stream::Iter` (with a reexport
      for the old name).
    * Add a `Sink::wait` method which returns an adapter to use an arbitrary `Sink`
      synchronously.
    * A `Stream::concat` method was added to concatenate a sequence of lists.
    * The `oneshot::Sender::complete` method was renamed to `send` and now returns a
      `Result` indicating successful transmission of a message or not. Note that the
      `complete` method still exists, it's just deprecated.
  • futures-cpupool-0.1.3
    Version 0.1.3
    
    * Add CpuFuture::forget
    * Add thread name prefixes to Builder
  • 0.1.10
    a9200e13 · Bump to 0.1.10 ·
    Version 0.1.10
    
    * Add a new `unsync` module which mirrors `sync` to the extent that it can but
      is intended to not perform cross-thread synchronization (only usable within
      one thread).
    * Tweak `Shared` to work when handles may not get poll'd again.
  • 0.1.9
    65872fe5 · Bump to 0.1.9 ·
    Version 0.1.9
    
    * Fix `Send/Sync` of a few types
    * Add `future::tail_fn` for more easily writing loops
    * Export SharedItem/SharedError
    * Remove an unused type parameter in `from_err`
  • 0.1.8
    63c875b4 · Bump to 0.1.8 ·
    Version 0.1.8
    
    * 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`
  • 0.1.7
    0163721a · Bump to 0.1.7 ·
    Version 0.1.7
    
    * 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.