更新日志

更新日志 — Pragmatic Rust Guidelines

译文 · 基于 Pragmatic Rust Guidelines

原文链接: https://microsoft.github.io/rust-guidelines/changelog/index.html

更新日志

本页记录《务实的 Rust 指南》的重要变更。

2026.6

本次更新大幅扩展了指南,新增 41 条准则,涵盖宏、性能、项目布局、FFI、AI 辅助开发等方面:

准则标题
M-ASYNC-FN函数使用 async 而非返回 Future
M-ASYNC-STACK-SIZE热路径 async 函数减小栈尺寸
M-AVOID-INDIRECTION嵌套类型层次应避免不必要的间接
M-BALANCED-MODULES模块在大小与职责上保持均衡
M-BOX-DST不可变自有序列使用 boxed slice 与 string
M-BUILD-RESULTBuilder 在最终 .build() 中校验
M-CARGO-WORKSPACE公共设置来自 workspace 的 Cargo.toml
M-COLLECTION-TRAITS集合实现相应的 iter trait
M-CRATES-FLAT-FOLDER所有 crate 作为兄弟目录放在同一文件夹
M-CRATES-IN-WORKSPACEworkspace 列出并为所有 crate 指定版本
M-EXAMPLE-OVER-PROC优先示例宏而非过程宏
M-FAST-HASHER尽可能使用快速 hasher
M-FFI-NAMINGFFI crate 遵循既有命名约定
M-FFI-TRANSLATES业务逻辑属于核心 crate,FFI 只做转译
M-FOREIGN-REEXPORTS项来自其原始 crate
M-FROM-ERROR规范错误转换使用 From 而非 map_err
M-INITIAL-CAPACITY创建集合时给予足够初始容量
M-INTEGRATION-TESTS集成测试放在 tests/ 下
M-LATEST-EDITION新 crate 面向最新 edition
M-LOG-NOT-PRINT生产代码使用遥测而非 println
M-LOG-OVERHEAD库的遥测不得拖垮性能
M-MACRO-HELPERS第三方项来自隐藏的 _private 模块
M-MACRO-LAST-RESORT宏是最后手段
M-MACRO-MAIN-CRATE宏假定位于主 crate
M-MACROS-DONT-LIE宏不谎报签名
M-MEM-REUSE尽可能复用分配
M-MSRV保守地更新 MSRV
M-NO-META-DESIGN-DOCUMENTATION避免元设计文档
M-NO-PRELUDE不要定义 prelude
M-PANIC-CONTINUATION从 panic 继续执行是最后手段
M-PANIC-MESSAGE自定义 panic 要有有用的消息
M-PARAMETER-CONSISTENCY参数顺序保持一致
M-PROC-IMPL过程宏应有独立的 impl crate(含测试)
M-PROC-IMPLIED-ITEMS过程宏不产生隐含或隐藏项
M-RUST-SHAPEDRust 代码解决 Rust 问题
M-SHORT-NAMES项的名称要短
M-SHRINK-TO-FIT构建完成后收缩集合以贴合容量
M-SINGLE-ITEM-PATH项只通过一条路径可见
M-STRONG-TYPES-GUARDNewtype 守护不变量
M-TARGET-CPU应用面向可行的最高 target-cpu
M-TAUTOLOGICAL-TESTS测试不断言常识性事实

我们还移除了按准则单独版本化的做法。

2025

《务实的 Rust 指南》首次发布。

最后修改 August 21, 2026: 更新 (76fc81a2e)