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 异步

Download history 193416/week @ 2024-04-27 201461/week @ 2024-05-04 230679/week @ 2024-05-11 217856/week @ 2024-05-18 220670/week @ 2024-05-25 223356/week @ 2024-06-01 211504/week @ 2024-06-08 225732/week @ 2024-06-15 216773/week @ 2024-06-22 199138/week @ 2024-06-29 212588/week @ 2024-07-06 229328/week @ 2024-07-13 258993/week @ 2024-07-20 247205/week @ 2024-07-27 260936/week @ 2024-08-03 228751/week @ 2024-08-10

1,035,960 每月下载量
2,656 个Crates中(1,757个直接使用)

Apache-2.0/MIT

695KB
14K SLoC

async-std

Rust标准库的异步版本


此crate提供了std的异步版本。它提供了您习惯的所有接口,但以异步版本提供,并准备好用于Rust的async/await语法。

功能

  • 现代: 从头开始为std::futureasync/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.0MIT 许可证 下获得许可。
除非您明确声明,否则根据 Apache-2.0 许可证定义,您有意提交的任何贡献,包括在本 crate 中包含的贡献,将按照上述方式双许可,而无需任何额外的条款或条件。

依赖关系

~4–17MB
~224K SLoC