Cargo Workflows 是一个 Rust 项目专用的 Cargo 工作流技能,旨在引导 AI 智能体完成 Cargo 工作区、特性管理、构建脚本、CI 集成、增量编译以及 Cargo 工具生态相关的工作。
用途
该技能用于回答和处理与 Cargo 工作流相关的问题与任务,典型触发场景包括:如何为多个 crate 设置 Cargo 工作区、Cargo 中特性(feature)如何工作、如何编写 build.rs 脚本、如何加速 CI 中的 Cargo 构建、如何审计 Rust 依赖、cargo nextest 是什么以及是否应该使用等。
主要能力
工作区设置
可指导创建包含多个 crate 的 Cargo 工作区,涵盖工作区根 Cargo.toml 的 members 配置、单一 Cargo.lock 文件、resolver = "2"(edition 2021 所需)、通过 workspace.dependencies 共享依赖版本、通过 workspace 继承版本与 edition、以及共享 profile 设置(如 release profile 中的 lto 和 codegen-units)。
特性标志(Feature Flags)
涵盖 default 特性、简单标志特性、启用其他特性的组合特性(如 full)、带可选依赖的特性(dep:tokio、dep:serde),以及通过命令行使用 --features、--no-default-features、--all-features 构建和检查特性组合。同时说明特性可加性(一旦在依赖图中启用即保持启用)、resolver = "2" 防止 dev-dependencies 与常规依赖间特性泄漏、以及使用 dep:optional_dep 语法避免隐式特性创建等注意事项。
构建脚本(build.rs)
介绍在 crate 根目录编写 build.rs、在编译前运行、通过 println! 输出 cargo 指令控制构建行为,包括 rerun-if-changed、rerun-if-env-changed、rustc-link-lib、rustc-link-search、rustc-cfg、rustc-env、warning 等指令,并给出使用 bindgen 生成绑定的示例。
增量构建与 CI 缓存
提供 GitHub Actions 中 Swatinem/rust-cache 和 actions/cache 的缓存配置示例、cargo fetch 预热缓存、cargo build --tests 构建全部测试二进制,以及 release profile 中 incremental 设置的说明。
cargo nextest
介绍安装(cargo install cargo-nextest)、并行运行测试、按名称过滤、列出测试、CI 中 JUnit 输出,以及 nextest.toml 中的 profile 配置(fail-fast、test-threads、retries)。
依赖管理与审计
涵盖 cargo-audit 安全检查、cargo-deny 检查许可证/重复/公告、cargo-machete 检查未使用依赖、cargo update 与 cargo upgrade 更新依赖,并给出 deny.toml 中 licenses、bans、advisories 的配置示例。
常用 cargo 命令
包括仅构建特定 binary 或 example、带参数运行、cargo-expand 展开宏、cargo tree 查看依赖树与重复项及反向依赖、cargo metadata 输出 Cargo.toml 元数据。
使用方式
该技能以技能文档形式组织,包含 Purpose、Triggers、Workflow 等部分,按上述主题提供代码示例、配置片段和操作步骤。用户可通过自然语言提问触发对应工作流,例如询问工作区搭建、特性管理、构建脚本或 CI 加速等。
适用场景
适用于 Rust 多 crate 项目的结构管理、特性标志设计、构建脚本编写、CI 构建加速与缓存配置、测试运行优化、依赖安全审计与许可证检查等开发与维护场景。
相关技能与限制
相关技能包括 rustc-basics(编译器标志与 profile 配置)、rust-debugging(调试 Cargo 构建的二进制)、rust-ffi(build.rs 与 C 库绑定)、以及 build-systems/cmake(将 Rust 集成到 CMake 构建中)。关于工作区模式与依赖解析细节,可参考 references/workspace-patterns.md。资料的 official_text 暂未提供,其他未提及的功能、收费、价格或平台信息暂未提供。