#parallel #async-parallel #join #thread

asparit

为 Rust 实现的异步并行迭代器

1 个不稳定版本

0.1.0 2020年11月20日

#735 in 并发


async-ecs 中使用

Apache-2.0/MIT

400KB
11K SLoC

AsParIt - 异步并行迭代器

Rayon crate Rayon documentation

Asparit 实现了异步并行迭代器。它主要基于 rayon 的想法和代码。如需更多详细信息,请参考 rayon 的文档。Asparit 的优点在于,迭代器可以由所谓的执行器驱动。目前实现了三种不同的执行器:

  • rayon - 使用 rayon 作为执行器。
  • tokio - 使用 tokio 作为执行器。这使迭代器能够支持 async/await 语法。
  • sequential - 简单的执行器,以顺序方式驱动迭代器。这可能对测试目的有用。

示例

使用 tokio 执行器使用 asparit 的简单示例。

use asparit::*;

let s = (0..10)
    .into_par_iter()
    .sum()
    .exec_with(TokioExecutor::default())
    .await;

assert_eq!(s, 45);

如果 tokio 被设置为默认执行器,您可以使用 exec 而不是 exec_with

use asparit::*;

let s = (0..10)
    .into_par_iter()
    .sum()
    .exec()
    .await;

assert_eq!(s, 45);

许可证

Asparit 在 MIT 许可证和 Apache 许可证(版本 2.0)的条款下发布。有关详细信息,请参阅 LICENSE-APACHELICENSE-MIT。提交拉取请求被视为同意这些许可条款。

依赖项

~0–1.3MB
~21K SLoC