TL;DR
使っていない不要な依存関係を削除する Cargo の拡張ツール。
仕組み
次のコマンドでインストールする。
cargo install cargo-machete公式の README では、Rust のプロジェクトの使われていない依存関係を「速く、ただし不正確に」検出するツールだと説明している。Rust のプロジェクトがあるディレクトリで cargo machete を実行するか、パスを渡して実行する。終了コードは、使われていない依存関係がなければ 0、1 つ以上あれば 1、エラーが起きたら 2 になるので、CI に組み込みやすい。
注意点
正確さより速さを取っているので、誤検出がある。たとえば、build.rs が生成したコードで使っている依存関係は、使われていないと判定されることがある。誤検出を減らしたいときは --with-metadata を付けると、cargo metadata --all-features の結果を使って判定する。ただし、このオプションはプロジェクトの Cargo.lock を書き換えることがある。
誤検出された依存関係は、Cargo.toml の package.metadata.cargo-machete に ignored として並べると、検出の対象から外せる。
[package.metadata.cargo-machete]
ignored = ["prost"]