Changelog History
Page 6
-
v0.1.17 Changes
October 31, 2017- ➕ Add a
close
method onsink::Wait
- 🗄 Undeprecate
stream::iter
asstream::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 forFuturesOrdered
andFuturesUnordered
.
- ➕ Add a
-
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
- A
-
v0.1.15 Changes
August 24, 2017- 👌 Improve performance of
BiLock
methods - 👯 Implement
Clone
forFutureResult
- Forward
Stream
trait throughSinkMapErr
- Add
stream::futures_ordered
next tofutures_unordered
- Reimplement
Stream::buffered
on top ofstream::futures_ordered
(much more efficient at scale). - ➕ Add a
with_notify
function for abstractions which previously requiredUnparkEvent
. - Add
get_ref
/get_mut
/into_inner
functions for stream take/skip methods - ➕ Add a
Clone
implementation forSharedItem
andSharedError
- ➕ Add a
mpsc::spawn
function to spawn aStream
into anExecutor
- ➕ Add a
reunite
function forBiLock
and the split stream/sink types to rejoin two halves and reclaim the original item. - 📊 Add
stream::poll_fn
to behave similarly tofuture::poll_fn
- Add
Sink::with_flat_map
likeIterator::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 thesync
andunsync
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 thanselect
. - ➕ Add
oneshot::Sender::is_canceled
to test if a oneshot is canceled off a task. - 🗄 Deprecates
UnboundedSender::send
in favor of a method namedunbounded_send
to avoid a conflict withSink::send
. - 🗄 Deprecate the
stream::iter
function in favor of anstream::iter_ok
adaptor to avoid the need to deal withResult
manually. - ➕ Add an
inspect
function to theFuture
andStream
traits along the lines ofIterator::inspect
- 👌 Improve performance of
-
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 thefutures::{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 onstd
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 theFuturesUnordered
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 thanTask::is_current
but with stronger guarantees and documentation wording about its purpose. - Many combinators now have
get_ref
,get_mut
, andinto_inner
methods for accessing internal futures and state. - 🛠 A
Stream::concat2
method was added which should be considered the "fixed" version ofconcat
, 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 overExecutor
rather than requiring atokio_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 totask::current
. - The
Task::unpark
function has been renamed toTask::notify
, and in general terminology around "unpark" has shifted to terminology around "notify" - 🗄 The
Unpark
trait has been deprecated in favor of theNotify
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 apush
function on theFuturesUnordered
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 useTask::will_notify_current
instead, but let us know if this doesn't suffice!
- A
-
v0.1.13 Changes
April 05, 2017- ➕ Add forwarding sink/stream impls for
stream::FromErr
andsink::SinkFromErr
- ➕ Add
PartialEq
andEq
tompsc::SendError
- Reimplement
Shared
withspawn
instead ofUnparkEvent
- ➕ Add forwarding sink/stream impls for
-
v0.1.12 Changes
April 03, 2017- Add
Stream::from_err
andSink::from_err
- 👍 Allow
SendError
to beClone
when possible
- Add
-
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 ofSink
to implement theclose
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 tostream::Iter
(with a reexport for the old name). - ➕ Add a
Sink::wait
method which returns an adapter to use an arbitrarySink
synchronously. - A
Stream::concat
method was added to concatenate a sequence of lists. - The
oneshot::Sender::complete
method was renamed tosend
and now returns aResult
indicating successful transmission of a message or not. Note that thecomplete
method still exists, it's just deprecated.
- A new select combinator,
-
v0.1.10 Changes
January 30, 2017- ➕ Add a new
unsync
module which mirrorssync
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.
- ➕ Add a new
-
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
- 🛠 Fix
-
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
inUnboundedSender::send
- 🛠 Fix some race conditions in the