#executor #async-await #future #async #async-task #await

async-global-executor

基于 async-executor 和 async-io 构建的全球执行器

31 个版本 (稳定版)

2.4.1 2023 年 12 月 11 日
2.4.0 2023 年 11 月 23 日
2.3.1 2022 年 10 月 28 日
2.2.0 2022 年 6 月 20 日
0.2.3 2020 年 8 月 28 日

异步 中排名第 194

Download history 209749/week @ 2024-04-27 218445/week @ 2024-05-04 249608/week @ 2024-05-11 238124/week @ 2024-05-18 238393/week @ 2024-05-25 246079/week @ 2024-06-01 232435/week @ 2024-06-08 244481/week @ 2024-06-15 240935/week @ 2024-06-22 219867/week @ 2024-06-29 237429/week @ 2024-07-06 255868/week @ 2024-07-13 286035/week @ 2024-07-20 272585/week @ 2024-07-27 290128/week @ 2024-08-03 252134/week @ 2024-08-10

每月下载量 1,146,641
用于 2,709 个 Crates(直接使用 52 个)

Apache-2.0 OR MIT

24KB
352 行 代码

async-global-executor

API Docs Build status Downloads

基于 async-executor 和 async-io 构建的全球执行器

特性

  • async-io:如果启用,async-global-executor 将使用 async_io::block_on 而不是 futures_lite::future::block_on。如果您的应用程序也使用 async-io,则建议使用此选项。
  • blocking:通过 async_global_executor::spawn_blocking 启用对 blocking crate 的使用。
  • tokio:如果启用,async-global-executor 将确保所有您将启动的任务都在 tokio 1.0 运行时上下文中运行,如果需要,将启动一个新的运行时。
  • tokio03:如果启用,async-global-executor 将确保所有您将启动的任务都在 tokio 0.3 运行时上下文中运行,如果需要,将启动一个新的运行时。
  • tokio02:如果启用,async-global-executor 将确保所有您将启动的任务都在 tokio 0.2 运行时上下文中运行,如果需要,将启动一个新的运行时。

示例

# use futures_lite::future;

// spawn a task on the multi-threaded executor
let task1 = async_global_executor::spawn(async {
    1 + 2
});
// spawn a task on the local executor (same thread)
let task2 = async_global_executor::spawn_local(async {
    3 + 4
});
let task = future::zip(task1, task2);

// run the executor
async_global_executor::block_on(async {
    assert_eq!(task.await, (3, 7));
});

许可协议

根据您的选择,在以下协议下许可:

贡献

除非您明确表示,否则根据 Apache-2.0 许可证定义的,您有意提交以包含在作品中的任何贡献,都应按上述方式双许可,无需任何额外的条款或条件。

依赖项

~3–13MB
~161K SLoC