#future #cross-platform #executor #io #platform-agnostic

无 std pasts

对 futures crate 的最小化、简化替代方案

23 个版本 (14 个破坏性更新)

0.14.3 2023年6月2日
0.14.2 2023年3月3日
0.14.1 2023年2月20日
0.12.0 2022年7月31日
0.0.1 2019年12月19日

#172异步

Download history 135/week @ 2024-03-11 97/week @ 2024-03-18 47/week @ 2024-03-25 198/week @ 2024-04-01 65/week @ 2024-04-08 137/week @ 2024-04-15 90/week @ 2024-04-22 94/week @ 2024-04-29 67/week @ 2024-05-06 87/week @ 2024-05-13 125/week @ 2024-05-20 75/week @ 2024-05-27 93/week @ 2024-06-03 82/week @ 2024-06-10 335/week @ 2024-06-17 94/week @ 2024-06-24

每月下载量612
用于 16 个 Crates (15 个直接使用)

Apache-2.0 OR BSL-1.0 OR MIT

30KB
492

Pasts

变更日志 | 源代码 | 入门

tests GitHub commit activity GitHub contributors
Crates.io Crates.io Crates.io (recent)
Crates.io Docs.rs

对 futures crate 的最小化、简化替代方案。

Pasts 异步运行时旨在通过异步事件循环创建用户空间软件和嵌入式软件。它旨在抽象出使用异步Rust的所有痛点。Pasts 故意保持小巧,整个源代码目录在500行Rust代码以下。

查看文档中的示例。

目标

  • 无不安全(安全且可靠)
  • 无需 std(执行器在启动时需要两个分配,如果需要可以使用容量较小的 bump 分配器)
  • 无宏(快速编译时间)
  • 无依赖[^1](无冗余)
  • 无成本(真正的零成本抽象)
  • 无痛苦(API非常容易学习和使用)
  • 无平台特定API差异(代码在所有地方都有效)。

支持的平台

Pasts 面向所有可以运行 Rust 的平台。执行器至少在以下平台上运行(可能在其他平台上也运行)

  • 所有支持线程的平台(包括所有一级和部分二级、三级平台)
  • 浏览器中的 Web Assembly(二级)
  • 无标准设备(二级和三级)

许可证

版权 © 2019-2023 Pasts 贡献者。

根据以下任一许可证授权

由您自行选择。

贡献

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

帮助

如果您想了解如何使用或贡献此库,请随时通过电子邮件发送给我 [email protected]

由于pasts不是一个一站式异步运行时解决方案,以下是一些设计用于与pasts良好合作的crate列表

  • Async Main - 用于移除main函数样板代码的宏crate
  • Whisk - 兼容no-std的MPMC(多生产者/多消费者)异步通道
  • Smelling Salts - 使用操作系统API异步唤醒设备的库
  • Lookit - 使用操作系统API异步连接到设备的库

[^1]: 一些功能需要平台集成依赖项,例如:- web 引入 wasm-bindgen-futures

依赖项

~0–1.3MB
~26K SLoC