COLLECTION · 合集
Rust 探索
记录 Rust 的所有权、异步运行时、编译器实现与可靠系统工程。
CHAPTER 01
类型系统
Rust 类型系统导论:让非法状态无法表示
Rust 类型如何描述数据、所有权、借用关系、失败路径与状态转换,以及这些机制之间的约束关系。
Rust 所有权、移动与复制:值如何被转移和析构
从 place expression、move path 和 drop glue 出发,分析 Move、Copy、Clone、部分移动与确定性析构的精确语义。
Rust 借用与重借用:共享、独占与访问权转移
从 borrowed place、别名约束与非词法生命周期出发,分析共享借用、独占借用、重借用、字段拆分和两阶段借用。
Rust 生命周期、子类型与型变:引用关系如何传播
从引用的来源关系出发,分析生命周期标注、省略规则、outlives 约束、生命周期子类型、协变、逆变、不变与高阶生命周期边界。
Rust trait、泛型与关联类型:能力如何进入类型系统
从泛型代码的可用操作出发,分析 trait bound、静态分发、关联类型、默认类型参数、完全限定语法、一致性规则与 newtype 模式。
Rust 类型推导与强制转换:上下文如何确定类型
从约束求解出发,分析类型推导的边界、强制转换位置、LUB 合并、Deref coercion、unsizing、never type、as 与 TryFrom 的不同语义。
Rust 静态分发、动态分发与对象安全:调用目标何时确定
从调用目标的确定时机出发,分析泛型单态化、枚举分发、trait object、胖指针、虚表、对象生命周期、dyn compatibility 与 trait upcasting。
Rust GAT、HRTB 与 never type:类型关系如何跨越量化层级
从类型族与量化关系出发,分析泛型关联类型、借出式迭代、必需 where 子句、高阶生命周期约束、无值类型、发散表达式与 never fallback。
Rust PhantomData、Pin 与 unsafe 边界:如何封装编译器无法证明的不变量
从幽灵类型、型变与 drop check 出发,分析地址敏感状态、结构化固定、Future 的 Pin 契约,以及 unsafe 代码必须维护的有效性、别名、析构与并发不变量。
CHAPTER 02
内存与资源
Rust 内存布局:值如何落到栈、堆与字节中
从大小、对齐与 padding 出发,分析栈和堆的真实边界、repr(Rust/C/transparent/packed)、枚举 niche、零大小类型、DST、胖指针与布局相关 unsafe 契约。
Rust Box 与唯一所有权分配:堆对象如何被创建、移动和释放
从 Box 的所有权与布局出发,分析堆分配、Deref、析构、递归类型、DST、裸指针往返、延迟初始化、主动泄漏、FFI 所有权和性能边界。
Rust Rc、Arc 与 Weak:共享所有权如何决定资源生命周期
从强弱引用计数出发,分析 Rc 与 Arc 的所有权语义、循环引用、并发边界、唯一性恢复、写时复制、自引用构造和裸指针协议。