35个版本 (19个稳定版)
1.12.0 | 2022年6月18日 |
---|---|
1.11.0 | 2022年3月22日 |
1.10.0 | 2021年8月26日 |
1.9.0 | 2021年1月15日 |
0.1.0 | 2019年5月30日 |
#7 in 异步
1,035,960 每月下载量
在 2,656 个Crates中(1,757个直接使用)
695KB
14K SLoC
async-std
此crate提供了std
的异步版本。它提供了您习惯的所有接口,但以异步版本提供,并准备好用于Rust的async
/await
语法。
功能
- 现代: 从头开始为
std::future
和async/await
构建,具有快速的编译时间。 - 快速: 我们强大的分配器和线程池设计提供了超高吞吐量,并具有可预测的低延迟。
- 直观: 与stdlib完全一致,这意味着您只需学习一次API。
- 清晰: 详细文档和易用的指南意味着使用异步Rust从未如此简单。
示例
use async_std::task;
async fn say_hello() {
println!("Hello, world!");
}
fn main() {
task::block_on(say_hello())
}
更多示例,包括网络和文件访问,可以在我们的examples
目录和文档中找到。
哲学
我们相信异步Rust应该像同步Rust一样易于上手。我们也相信最好的API是您已经知道的API。最后,我们相信提供标准库的异步对应版本是stdlib提供可靠性能和生产力的最佳方式。
Async-std 是这一愿景的体现。它结合了单分配任务创建,自适应无锁执行器、线程池和网络驱动程序,创建了一个平滑的系统,该系统能以高速度、低延迟使用 Rust 的熟悉 stdlib API 处理工作。
安装
安装 cargo-edit 后运行
$ cargo add async-std
我们还为 async-std 提供了一套“不稳定”特性。有关如何启用它们的详细信息,请参阅特性文档。
生态系统
-
async-tls — 使用 Rustls 的异步 TLS/SSL 流。
-
async-native-tls — 本地 TLS。用于 futures 和 async-std 的本地 TLS。
-
async-tungstenite — 为 async-std、tokio、gio 和任何 std Futures 运行时提供的异步 WebSockets。
-
Tide — 提供网络服务。围绕 async/await 构建的一个模块化 Web 框架。
-
SQLx — Rust 的 SQL 工具包。SQLx 是一个 100% 安全的 Rust 库,用于 Postgres 和 MySQL,具有编译时检查的查询。
-
Surf — 浏览网络。Surf 是一个友好的 HTTP 客户端,适用于 Rustaceans 和老手。
-
Xactor — 基于 async-std 的 rust actors 框架。
-
async-graphql — 使用 rust 实现的 GraphQL 服务器库,完全支持 async/await。
许可证
根据您的选择,在 Apache License,版本 2.0 或 MIT 许可证 下获得许可。除非您明确声明,否则根据 Apache-2.0 许可证定义,您有意提交的任何贡献,包括在本 crate 中包含的贡献,将按照上述方式双许可,而无需任何额外的条款或条件。
依赖关系
~4–17MB
~224K SLoC