futures-rs v0.1.14 Release Notes
Release Date: 2017-05-30 // almost 7 years ago-
๐ 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