mcpField
C
cargo-machete

cargo-machete

github.com/laurigates開発5965 回インストール1 日前に更新
リポジトリ

cargo-machete について

Rust 開発者向けのスキルで、cargo-machete による未使用依存関係の検出と削除を支援し、結果の確認や変更後の検証方法も案内します。

主な機能

  1. 01crate またはワークスペースの依存関係を検査
  2. 02検出結果のメタデータを表示
  3. 03確認済みの未使用依存関係を削除
  4. 04よくある誤検出に対処
  5. 05整理後にビルドを確認

活用シーン

  1. 01リリース前の Rust プロジェクト監査
  2. 02ワークスペースの不要な依存関係を削除
  3. 03CI で未使用依存関係を検査

インストール

コマンドをコピーしてターミナルで実行します。

$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 の依存関係が未使用と判定されるmachete:ignore コメントを追加
build.rs でのみ使用される依存関係が検出される[build-dependencies] に移動
再エクスポートされた依存関係が検出される説明を添えて machete:ignore コメントを追加
example/bench でのみ使用される依存関係[dev-dependencies] にあることを確認

cargo-udeps との比較

機能cargo-machetecargo-udeps
正確性良好優秀
速度非常に高速遅め
Rust バージョンstablenightly が必要
誤検出あり少なめ

高速な CI チェックには cargo-machete を使用します。徹底的な監査には cargo-udeps を使用します。

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

エージェント向けの最適化

コンテキストコマンド
簡易チェック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バージョンと場所を含む詳細な出力を表示
--fixCargo.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 を参照してください。

コメント