用途:整理现代应用层 Rust 的开发规范,涵盖 CLI 工具、后端服务与通用库代码;不覆盖 no_std/嵌入式场景。\n\n主要能力与要点:工具链使用 cargo、clippy(cargo clippy --workspace --all-targets -- -D warnings)、rustfmt(cargo fmt --all)、cargo-nextest、cargo-deny、cargo-machete,并用 rust-toolchain.toml 固定编译器版本;升级单一依赖用 cargo update -p <crate>。多 crate 项目采用工作区分层,依赖只向内,版本集中在 [workspace.dependencies],以 foo = { workspace = true } 引用,lint 集中在 [workspace.lints.*] 并对成员 crate 统一继承。错误处理按角色区分:库用 thiserror 定义类型化错误,二进制用 anyhow::Result 加 .context,避免 Box<dyn Error>、unwrap/expect(测试与 main 外)。所有权上签名取 &str、&[T],构造函数返回所有权类型,跨线程才用 Arc。异步默认 Tokio,用 tokio::spawn、JoinSet、select!、spawn_blocking、CancellationToken 与有界 mpsc 做背压,不混用运行时。CLI 用 clap derive,HTTP 服务默认 axum(State<Arc<AppState>>、tower 中间件),并发按场景选 rayon、broadcast 等。测试优先 cargo nextest run --workspace,配 rstest、proptest、insta、assert_cmd;含 unsafe 的 crate 跑 miri。CI 涉及 rustsec/audit-check、cargo-llvm-cov 等,具体见对应文件。\n\n使用方式与限制:文档按需加载子文件(build-profiles.md、performance.md、cli-tools.md、axum-service.md、production-resilience.md、observability.md、ci-pipeline.md)查看细节;验证要求 fmt/clippy/nextest/cargo deny 全部通过。未提供安装命令、价格或平台信息。
ia-rust-systems
编程与开发
更新于 10-15 22:17