All Versions
Latest Version
Avg Release Cycle
43 days
Latest Release
611 days ago

Changelog History
Page 6

  • v0.1.17 Changes

    October 31, 2017
    • โž• Add a close method on sink::Wait
    • ๐Ÿ—„ Undeprecate stream::iter as stream::iter_result
    • ๐Ÿ‘Œ Improve performance of wait-related methods
    • ๐Ÿ‘‰ Tweak buffered sinks with a 0 capacity to forward directly to the underlying sink.
    • โž• Add FromIterator implementation for FuturesOrdered and FuturesUnordered.
  • v0.1.16 Changes

    September 15, 2017
    • A prelude module has been added to glob import from and pick up a whole bunch of useful types
    • ๐Ÿ”€ sync::mpsc::Sender::poll_ready has been added as an API
    • ๐Ÿ”€ sync::mpsc::Sender::try_send has been added as an API
  • v0.1.15 Changes

    August 24, 2017
    • ๐Ÿ‘Œ 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
  • v0.1.14 Changes

    May 30, 2017

    ๐Ÿš€ 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 accommodate 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!
  • v0.1.13 Changes

    April 05, 2017
    • โž• 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
  • v0.1.12 Changes

    April 03, 2017
    • Add Stream::from_err and Sink::from_err
    • ๐Ÿ‘ Allow SendError to be Clone when possible
  • v0.1.11 Changes

    March 13, 2017

    ๐Ÿš€ 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 0๏ธโƒฃ 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.
  • v0.1.10 Changes

    January 30, 2017
    • โž• 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.
  • v0.1.9 Changes

    January 18, 2017
    • ๐Ÿ›  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
  • v0.1.8 Changes

    January 11, 2017
    • ๐Ÿ›  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