Crates.io | cargo-machete-nk |
lib.rs | cargo-machete-nk |
version | 0.9.2 |
source | src |
created_at | 2023-11-08 09:17:31.76628 |
updated_at | 2024-07-12 08:32:08.058024 |
description | Find unused dependencies with this one weird trick! |
homepage | |
repository | https://github.com/arsenron/cargo-machete-nk |
max_upload_size | |
id | 1028901 |
size | 80,432 |
cargo-machete-nk
Remove unused Rust dependencies with this one weird trick!
This is a fork of cargo-machete
, which adds a few additional features,
such as --exclude
flag to exclude provided subdirectories from the search.
cargo-machete
is a Cargo tool that detects unused dependencies in Rust
projects, in a fast (yet imprecise) way.
See also the original author's blog post for a detailed writeup.
Install cargo-machete-nk
with cargo:
cargo install cargo-machete-nk
Run cargo-machete-nk in a directory that contains one or more Rust projects (using Cargo for dependency management):
cd my-directory && cargo machete-nk
# alternatively
cargo machete-nk /absolute/path/to/my/directory
The return code gives an indication whether unused dependencies have been found:
This can be used in CI situations.
To ignore a certain set of dependencies in a crate, add
package.metadata.cargo-machete
to Cargo.toml
(or workspace.metadata.cargo-machete
to a
workspace 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
# in an individual package Cargo.toml
[package.metadata.cargo-machete]
ignored = ["prost"]
# in a workspace Cargo.toml
[workspace.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.