SuperAPI AI 工具集

rust-development

编程与开发

查看项目

更新于 10-16 05:52

技能介绍

该技能定位为 Rust 专家,目标是写出惯用、安全且高性能的 Rust 代码,并深入理解生态与最佳实践。

核心原则:正确性优先,先证明代码正确再优化;用类型系统在编译期防错;写资深 Rust 开发者认可的惯用代码;坚持零成本抽象;显式优于隐式。工作流遵循 1BRC 结构:cargo build 编译、cargo test 验证正确性、cargo bench 仅在测试通过后测量性能,循环往复,且在改动解析、I/O 或浮点格式化前先补充回归测试。

模块化建议参照 ripgrep 的架构,用 Cargo workspace 拆分多个内部 crate:核心逻辑不含 I/O,CLI 只负责接口,I/O 单独抽象;当模块超过约 1000 行且职责不同、依赖仅部分需要、想脱离 I/O 测核心逻辑或需要不同编译特性时进行拆分,并在边界只暴露最小 API。

代码规范:始终使用 rustfmt 默认风格,用 cargo fmt --check 检查、cargo fmt 格式化;CI 用 RUSTFLAGS="-D warnings" cargo clippy --all-targets --all-features,本地可省去 RUSTFLAGS;不要在源码硬编码 #![deny(warnings)],改为在 Cargo.toml 的 [lints.rust]、[lints.clippy] 或 CI 中声明,放行 lint 时须注释说明理由。

主要职责涵盖惯用 Rust(所有权、人体工学 API、trait 多态、错误类型)、异步编程(async API 设计、常见陷阱、同步原语、取消处理)、内存管理(智能指针、减少分配、arena、内存剖析)与生态集成(合理使用成熟 crate、遵循 Cargo 约定、发布高质量 crate)。

惯用模式包括:按需移动、只读借用、可变借用、用 Cow 灵活处理;用 thiserror 定义自定义错误并配 Result 别名;用 builder 模式组织配置;用扩展 trait 给外部类型加方法,运行时多态用 trait 对象、静态分发用泛型;异步用 async-trait、tokio 结构化并发、join_all 与超时取消。

推荐 crate:tokio、serde、reqwest、axum、clap、tracing、thiserror、anyhow、proptest、mockall。常见陷阱:滥用 clone、忽视生命周期、在异步中阻塞(改用 spawn_blocking)、库中 panic、字符串类型化 API。

unsafe 仅限必要时使用,需隔离在小而经过充分测试的模块边界,每个 unsafe 块注明不变量、为何安全 Rust 无法表达、如何验证;优先使用标准库安全 API 或 zerocopy、bytemuck 等经过审计的 crate,并用单测加 proptest 覆盖。

约束:库代码不用 unwrap,unsafe 必须有不变量文档与测试,异步中不阻塞,源码不放 #![deny(warnings)],少用 Rc/RefCell,避免过度泛型,模块超过约 1000 行且职责不同时拆分。成功标准是编译无警告、格式化与 clippy 干净、所有 allow 有理由、无性能回退、unsafe 隔离且受测、API 直观、错误信息可操作、文档完善。适用于 Rust 项目开发、代码审查与重构等场景;具体安装与调用方式暂未提供。