SuperAPI AI 工具集

rust-systems

编程与开发

查看项目

更新于 10-15 22:17

技能介绍

用途:面向 Rust 应用层(CLI、Web 服务、库)的编码与评审规范,基于 edition 2024,不涉及 no_std/嵌入式。

主要能力与规则:库中保留错误变体,在应用边界补充运行上下文;替换文件前先区分「配置缺失」与「文件不可读或无效」;阻塞任务不得占用异步工作线程,队列与派生任务要有界,并明确关闭行为;变更前先追踪已导出接口、确认运行时能力。并发测试中不得改动进程级状态,应运行真实二进制与相关特性组合。

unsafe 纪律:默认不用 unsafe;clippy 报警不要用 #[allow] 掩盖,应重构。每个 unsafe 块上方需有 // SAFETY: 注释说明各不变量成立的原因,无注释即被拒。unsafe 块尽量精简,在模块边界封装为安全抽象并标记 pub(crate)。含 unsafe 或裸指针运算的 crate 用 miri(cargo +nightly miri test)检查。零拷贝优先用 bytemuck、zerocopy、bytes,而非手写 transmute。edition 2024 中写环境变量属于 unsafe,只能在 main 中、运行时启动或线程创建前写入;并发 getenv 是 UB,OnceLock 不能使其安全。

简洁性:每次改动尽量简单、影响最小,PR 不做无关修改。不用 #[allow(clippy::...)] 走捷径,确需抑制时写 #[expect(clippy::lint_name, reason = "...")](需 Rust 1.81+)。新增 trait 或泛型前确认已在 3 处以上使用。注意 bool::then_some(x) 会预先计算参数,守卫条件加定长切片会在更短输入上 panic,应改用惰性的 then(|| …);定长切片不等于解析,&v[..19] 在非 ASCII 上会按字符中途 panic,且比较前缀会丢失时区偏移,应解析并归一化或拒绝。

验证:cargo fmt --all -- --check 零差异;cargo clippy --workspace --all-targets --all-features -- -D warnings 通过;cargo nextest run --workspace(或 cargo test --workspace)零失败;使用 nextest 时还需 cargo test --doc --workspace 通过(nextest 不跑文档测试);生产 crate 需 cargo deny check 通过;不得新增无 // SAFETY: 注释的 unsafe。

任务参考:Cargo 配置、workspace、公共 API 可达性、构建配置或 CI 读 toolchain-and-interfaces.md;错误、所有权、解析边界、Tokio、关闭或并发读 ownership-and-execution.md;CLI/服务入口、生产韧性、遥测或测试读 applications-and-testing.md;另有 macros-and-os-boundaries.md、rustdoc.md、build-profiles.md、performance.md、cli-tools.md、production-resilience.md、axum-service.md、observability.md、ci-pipeline.md。

限制:未提供具体安装命令、版本兼容范围与收费信息。