RealKC / cargo-machete

Remove unused Rust dependencies with this one weird trick!

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

cargo-machete

Remove unused Rust dependencies with this one weird trick!

build status matrix chat supported rustc stable

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 ignore array:

For example:

[dependencies]
prost = "0.10" # Used in code generated by build.rs output, which cargo-machete cannot check

[package.metadata.cargo-machete]
ignore = ["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

Contributor Covenant

We welcome community contributions to this project.

License

MIT license.

About

Remove unused Rust dependencies with this one weird trick!

License:MIT License


Languages

Language:Rust 100.0%