这是一份面向 Rust 项目的务实编码规范集合,将多条指南合并为便于查阅的单一文档,目标是让代码保持可读、可测试与高性能。
用途与适用场景:既适用于库(crate),也适用于应用程序;其中专门包含“为 AI 使用而设计”的章节,强调让智能体在代码库中更有效地工作。
主要能力与要点:
- AI 协作:建议采用符合 Rust API Guidelines 的惯用 API 模式,提供详尽文档与可直接使用的示例,使用强类型避免基本类型偏执,让 API 可测试并保证测试覆盖。
- 应用指南:应用及其专用 crate 可使用 anyhow、eyre 等应用级错误 crate,例如 use eyre::Result;,但不应混用多种应用级错误类型;被多个 crate 使用的库应遵循规范错误结构体。应用可将 mimalloc 设为全局分配器,示例:在 Cargo.toml 添加 mimalloc = { version = "0.1" },并在 main.rs 使用 use mimalloc::MiMalloc; 与 #[global_allocator] static GLOBAL: MiMalloc = MiMalloc;。
- 文档:公共库条目需包含规范章节(摘要句、示例、错误、恐慌、安全、中止等),摘要句不超过约 15 词且占一行;公共模块需有 //! 模块文档;pub use 重导出项建议加 #[doc(inline)],但不改变避免通配符重导出的原则。
- FFI:在多个 Rust 动态库之间只能共享“可移植”状态,避免跨 DLL 传递 String、Vec、Box、非 #[repr(C)] 结构体及依赖 TypeId 的数据,以防数据损坏与未定义行为。
- 性能:尽早识别并基准测试热路径,可用 criterion 或 divan;为基准启用调试符号 [profile.bench] debug = 1;优化吞吐量、避免空转周期,长任务应包含 yield_now().await 让出点,建议每 10–100μs CPU 工作让出一次。
- 安全:unsafe 仅用于误用会导致未定义行为的函数与 trait,必须有正当理由(新抽象、性能、FFI 与平台调用等),否则应避免。
限制:资料为规范条文,未提供具体安装命令、收费、平台支持或效果数据;部分章节(如 FFI 与安全)在给定文本中被截断,完整内容暂未提供。