Rust 编译器与运行时揭秘

Rust 编译器与运行时揭秘

第一本从编译器视角系统拆解 Rust 语言核心机制的中文技术专著。

Rust 开发者每天都在使用所有权、借用、trait、async/await——但极少有人真正理解这些机制在编译器内部是如何实现的。为什么 borrow checker 能在编译期捕获悬垂引用?为什么 async fn 的返回值大小在编译期就能确定?为什么泛型函数调用没有运行时开销?

本书不教 Rust 语法。本书拆解 Rust 的编译器行为和运行时机制——从源码到 HIR、MIR、LLVM IR 再到机器码的完整链路中,每一个关键特性是如何被实现的。每一章聚焦一个核心机制,用"你写的代码"与"编译器生成的产物"对照的方式,让你真正理解 Rust 零成本抽象背后的工程实现。

这是 Rust 后端系列的第一本书。理解了 Rust 本身的编译期和运行时机制,后续阅读 Tokio、Axum、Pingora、MeiliSearch、TiKV 等项目的源码时,你将不会在任何 trait bound、lifetime、Pin 上卡住。

适合谁读

目录

开篇

第二部分:所有权与内存

第三部分:类型系统与泛型

第四部分:异步机制

第五部分:闭包、unsafe 与 FFI

第六部分:宏与元编程

第七部分:编译器后端与优化

第八部分:总结

源码版本

本书分析基于 Rust 1.88 stable(2026 年 4 月)和对应的 rustc 编译器源码。涉及的 MIR、LLVM IR 等中间表示均通过 cargo rustc -- --emit=mir--emit=llvm-ir 等工具实际生成,读者可以自行验证。

版权声明

本书采用 CC BY-NC 4.0 许可协议。转载或引用请署名 杨艺韬 并附原文链接,禁止商业用途。