9 个版本
使用旧 Rust 2015
0.1.7 | 2016 年 5 月 4 日 |
---|---|
0.1.6 | 2016 年 4 月 2 日 |
0.1.5 | 2015 年 12 月 22 日 |
0.1.4 | 2015 年 8 月 16 日 |
0.0.1 | 2015 年 3 月 31 日 |
#1899 在 异步
316 每月下载量
用于 4 个 crate (2 直接)
125KB
2.5K SLoC
Eventual - Rust 的 Future & Stream
Eventual 为 Rust 提供了 Future & Stream 抽象以及一些用于操作它们的计算构建器。
使用方法
要使用 Eventual
,首先将以下内容添加到您的 Cargo.toml
[dependencies.eventual]
git = "https://github.com/carllerche/eventual"
然后,将以下内容添加到您的 crate 根目录
extern crate eventual;
lib.rs
:
异步计算的组合原语
async 模块包含用于管理异步计算的实用工具。这些实用工具主要围绕 Future
和 Stream
类型,以及允许在这些类型上组合计算的功能。
Future
Future
是一个代理,表示计算的结果,该结果可能尚未完成。该计算可能正在另一个线程中并发运行,或者在异步回调完成后触发。一种思考 Future
的方式是将其视为一个 Result
,其中值是异步计算的。
例如
use eventual::*;
// Run a computation in another thread
let future1 = Future::spawn(|| {
// Represents an expensive computation, but for now just return a
// number
42
});
// Run another computation
let future2 = Future::spawn(|| {
// Another expensive computation
18
});
let res = join((
future1.map(|v| v * 2),
future2.map(|v| v + 5)))
.and_then(|(v1, v2)| Ok(v1 - v2))
.await().unwrap();
assert_eq!(61, res);
Stream
Stream
与 Future
类似,但与表示单个值不同,它表示一系列值。
依赖项
~0.8–1.2MB
~19K SLoC