mcpField
C
cargo-machete

cargo-machete

github.com/laurigates开发5965 次安装1 天前更新
代码仓库

关于 cargo-machete

面向 Rust 开发者的技能,使用 cargo-machete 查找并移除未使用的依赖,并指导复核结果与验证修改。

主要功能

  1. 01检查单个 crate 或工作区
  2. 02显示发现项的元数据
  3. 03移除已确认的未使用依赖
  4. 04处理常见误报
  5. 05清理后检查构建

适用场景

  1. 01发布前审计 Rust 项目
  2. 02清理工作区中的冗余依赖
  3. 03在 CI 中检查未使用依赖

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/laurigates/claude-plugins --skill cargo-machete

安装后在 Claude Code 中输入/cargo-machete确认已加载。

附带文件REFERENCE.md

详细介绍

cargo-machete - 未使用依赖检测

使用 cargo-machete 检测并移除 Rust 项目中的未使用依赖。

何时使用此技能

在以下情况下使用此技能……在以下情况下改用 X……
审查未使用的依赖检查过时的依赖——使用 cargo outdated
清理 Cargo.toml审查安全漏洞——使用 cargo audit
通过移除冗余依赖来优化构建时间检查许可证合规性——使用 cargo deny
在 CI 中验证依赖需要精确到 nightly 的分析——使用 cargo +nightly udeps

上下文

  • Cargo.toml:!find . -maxdepth 1 -name \'Cargo.toml\'
  • 工作区:!find . -maxdepth 1 -name 'Cargo.toml' -exec grep -q '\[workspace\]' {} +
  • 已安装 cargo-machete:!cargo machete --version
  • Machete 配置:!find . -maxdepth 1 -name \'.cargo-machete.toml\'
  • 工作区成员:!find . -maxdepth 1 -name 'Cargo.toml' -exec grep -A 20 '^\[workspace\]' {} +

执行

执行以下未使用依赖分析:

第 1 步:确认已安装

检查是否已安装 cargo-machete(参见上面的上下文)。如果尚未安装,请安装:

cargo install cargo-machete
第 2 步:运行依赖分析

运行 cargo-machete 并附带元数据,以获取详细输出:

# Single crate
cargo machete --with-metadata

# Workspace (if Context shows workspace)
cargo machete --workspace --with-metadata
第 3 步:评估结果

查看输出并对每项发现进行分类:

发现操作
确实未使用的依赖使用 --fix 移除,或手动移除
Proc-macro 依赖(例如 serde derive)添加 machete:ignore 注释
仅供 Build.rs 使用的依赖移至 [build-dependencies]
重新导出的依赖添加带说明的 machete:ignore 注释
第 4 步:应用修复

对于确认未使用的依赖,自动将其移除:

cargo machete --fix

对于误报,在 Cargo.toml 中添加忽略标注:

serde = "1.0"  # machete:ignore - used via derive macro

或者创建 .cargo-machete.toml,配置项目范围的忽略项:

[ignore]
dependencies = ["serde", "log"]
第 5 步:验证构建

移除依赖后,确认所有内容仍可成功编译:

cargo check --all-targets
cargo test --no-run

处理误报

场景解决方案
Proc-macro 依赖(例如 serde derive)添加 machete:ignore 注释
仅供 Build.rs 使用的依赖移至 [build-dependencies]
重新导出的依赖添加带说明的 machete:ignore 注释
仅供示例/基准测试使用的依赖确认其位于 [dev-dependencies] 中

与 cargo-udeps 的比较

特性cargo-machetecargo-udeps
准确性良好极佳
速度非常快较慢
Rust 版本稳定版需要 nightly
误报有一些较少

使用 cargo-machete 执行快速 CI 检查。使用 cargo-udeps 进行全面审查:

cargo +nightly udeps --workspace --all-features

Agent 优化

上下文命令
快速检查cargo machete
详细检查cargo machete --with-metadata
工作区检查cargo machete --workspace --with-metadata
自动修复cargo machete --fix
修复后验证cargo check --all-targets
精确检查(nightly)cargo +nightly udeps --workspace

快速参考

标志说明
--with-metadata显示包含版本和位置的详细输出
--fix自动从 Cargo.toml 中移除未使用的依赖
--workspace检查所有工作区成员
-p <crate>检查指定的工作区成员
--exclude <crate>排除指定的工作区成员

故障排除

问题解决方案
Proc macro 被标记为未使用在 Cargo.toml 中添加 machete:ignore 注释
Build.rs 依赖被标记移至 [build-dependencies]
重新导出的依赖被标记添加带说明的 machete:ignore 注释
需要更高的准确性使用 cargo +nightly udeps

有关 CI 集成模式、配置文件示例、pre-commit 设置和 Makefile 集成,请参阅 REFERENCE.md。

评论

支持 Markdown