TechFoco Logo
首页专题归档站点地图
© 2026 TechFoco. All rights reserved.
文章归档专题网站地图站点地图 XML爬虫规则
  1. 首页
  2. /
  3. 返回归档
  4. /
  5. 通过从零开始构建一个简单的运行时来深入学习异步 Rust | blog “如果你曾使用 Rust

通过从零开始构建一个简单的运行时来深入学习异步 Rust | blog “如果你曾使用 Rust

2026年02月09日•TechFoco 精选

通过从零开始构建一个简单的运行时来深入学习异步 Rust | blog “如果你曾使用 Rust 构建过任何 Web 应用(或任何需要通过网络与其他服务通信的应用),那么你很可能已经接触过 async/await 语法。

通过从零开始构建一个简单的运行时来深入学习异步 Rust | blog “如果你曾使用 Rust 构建过任何 Web 应用(或任何需要通过网络与其他服务通信的应用),那么你很可能已经接触过 async/await 语法。

你也可能不得不安装一个异步运行时(极大概率是 tokio)。

大多数情况下,像 tokio 这样的库都能很好地“隐身”于幕后:你只需在 main 函数上加上一个 [tokio::main],并用 tokio::net::TcpListener 替代 std::net::TcpListener,你的服务器便神奇地能够使用仅少数几个线程处理成千上万的并发 TCP 连接。

但这背后究竟发生了什么?

tokio 文档中的“深入异步”部分很好地解释了 Rust 标准库提供的各种异步 trait 和辅助结构体,以及 tokio 是如何实现它们的。

阅读后,你会对执行器(executor)、任务(task)、唤醒器(waker)和未来对象(future)等概念有所了解。

但在其示例中,你仍然只是启动一个线程休眠若干秒,然后使用另一个 crate 中的神奇 ArcWaker trait 来调度你的任务。

文章配图 1
文章配图 1

这些年来,我多次阅读过这些文档,也一直是异步 Rust 的满意用户。

我读过大量文章,使用过许多库,编写过大量异步代码。

但为了真正理解像 tokio 这类运行时背后的设计决策与权衡(例如,Send + 'static 的 future 确实令人烦恼——一个纯粹单线程的运行时会是什么样子?

),我决定自己动手为 Rust 构建一个异步运行时,且不依赖任何外部库(好吧,严格来说有两个:我使用 rustix 来绑定所需的 POSIX API,当然还有标准 Rust 库)。

它体积小、粗糙,可能在某些关键方面存在微妙的错误,除了教学用途外几乎毫无实用价值,但它让我对 Rust 的异步运行时有了深刻的理解。

在接下来的文章中,我将逐步讲解这个运行时的功能以及各个组件如何协同工作,并在最后分享我对整个实践过程的一些思考。

”

文章链接

  • 查看原文https://michaelhelvey.dev/posts/rust_async_runtime

相关标签

RustAsync/AwaitConcurrencyTokioRuntime

继续阅读

较新文章

AI写代码比我快千倍,上网却像个第一天摸电脑的新手 | 帖子 这是一个让人意想不到的时刻:AI模

较早文章

OpenAkita ,一个类似OpenClaw(ClawdBot)的开源项目

相关文章

查看更多

GridCraft 0.5.0:可通过 CLI 与 MCP 操作的 Rust 表格工具

GridCraft 0.5.0:可通过 CLI 与 MCP 操作的 Rust 表格工具 开源表格项目将工作簿读写、公式计算、格式和图表接入 CLI、MCP 与 JSON 控制通道,可用于脚本及智能体驱动的数据工作流。

2026年10月11日
RustCLI

Chrome 155 正式加入 JPEG XL 解码 Chrome 从 155 版本开始提供 J

Chrome 155 正式加入 JPEG XL 解码 Chrome 从 155 版本开始提供 JPEG XL 解码,采用 Rust 实现 jxl-rs,并覆盖渐进式显示、高保真与无损压缩等场景。

2026年10月08日
JPEG XLChrome

PhotoCraft 以 Rust 提供可编程图像编辑流程 MIT/Apache-2.0 双许可

PhotoCraft 以 Rust 提供可编程图像编辑流程 MIT/Apache-2.0 双许可的 PhotoCraft 将图层编辑、PSD/PSB 处理和 CLI、MCP、JSON 控制通道接入同一命令引擎,可供脚本与智能体自动化操作,并支持 WebAssembly。

2026年10月08日
Rust
图像处理

FluxDown 将多协议下载与 MCP 接入整合为 Rust 工具 开源下载引擎使用 Toki

FluxDown 将多协议下载与 MCP 接入整合为 Rust 工具 开源下载引擎使用 Tokio 和动态分段,支持 HTTP、FTP、BitTorrent、eD2K 及 HLS/DASH,并用 SQLite WAL 保存续传状态。

2026年10月06日
Rust下载引擎

Pebrel 整合终端、SSH 与 AI 编码会话 这个 Rust 和 GPUI 开源工作区支持

Pebrel 整合终端、SSH 与 AI 编码会话 这个 Rust 和 GPUI 开源工作区支持分屏终端、SSH/SFTP、会话布局保存,以及 Claude Code、Codex 的活动状态与输出阅读。

2026年10月03日
RustGPUI

TeXres 将 Rust TeX 工具链收敛为单个可执行文件 原 ratex 项目地址现指向

TeXres 将 Rust TeX 工具链收敛为单个可执行文件 原 ratex 项目地址现指向 TeXres,提供 Rust 编写的单文件 TeX 发行版,内置 LaTeX 引擎、包、字体以及 BibTeX/Biber,并提供 C 库与 WebAssembly 接口。

2026年09月20日
RustTeX