cargo-machete
cargo-machete copied to clipboard
Remove unused Rust dependencies with this one weird trick!
Introduction
cargo-machete is a Cargo tool that detects unused dependencies in Rust
projects, in a fast (yet imprecise) way.
See also the blog post for a detailed writeup.
Installation
Install cargo-machete with cargo:
cargo install cargo-machete
Example
Run cargo-machete in a directory that contains one or more Rust projects (using Cargo for dependency management):
cd my-directory && cargo machete
# alternatively
cargo machete /absolute/path/to/my/directory
To ignore a certain set of dependencies in a crate, add
package.metadata.cargo-machete to Cargo.toml, and specify an ignored array:
For example:
[dependencies]
prost = "0.10" # Used in code generated by build.rs output, which cargo-machete cannot check
[package.metadata.cargo-machete]
ignored = ["prost"]
If there are too many false positives, consider using the --with-metadata CLI
flag, which will call cargo metadata --all-features to find final dependency
names, more accurate dependencies per build type, etc. ⚠ This may modify the
Cargo.lock files in your projects.
Contributing
We welcome community contributions to this project.
License
MIT license.