Analyze Cargo.toml dependencies and attempt to remove unused features to reduce compile times and binary size
74
—
Does it follow best practices?
Impact
62%
1.40xAverage score across 3 eval scenarios
Advisory
Suggest reviewing before use
This skill analyzes Cargo.toml dependencies to identify and remove unused features.
Many crates enable features by default that may not be needed. This skill:
default-features = false worksAsk the user which crate(s) to analyze:
For the workspace Cargo.toml (quickwit/Cargo.toml), list dependencies that:
default-features = falseRun: cargo tree -p <crate> -f "{p} {f}" --edges features to see what features are actually used.
Look up the crate on crates.io or check its Cargo.toml to understand:
Use: cargo metadata --format-version=1 | jq '.packages[] | select(.name == "<crate>") | .features'
Modify the dependency in quickwit/Cargo.toml:
From:
some-crate = { version = "1.0" }To:
some-crate = { version = "1.0", default-features = false }Run: cargo check --workspace (or target specific packages for faster feedback)
If compilation fails:
some-crate = { version = "1.0", default-features = false, features = ["needed-feature"] }If there are many default features, use binary search:
For each dependency analyzed, report:
After all changes, run:
cargo check --workspace --all-targets
cargo test --workspace --no-runOften only needs derive:
serde = { version = "1.0", default-features = false, features = ["derive", "std"] }Identify which runtime features are actually used:
tokio = { version = "1.0", default-features = false, features = ["rt-multi-thread", "macros", "sync"] }Often doesn't need all TLS backends:
reqwest = { version = "0.11", default-features = false, features = ["rustls-tls", "json"] }If changes cause issues:
git checkout quickwit/Cargo.toml
cargo check --workspacecargo bloat --crates to identify large dependenciescargo tree -d for duplicate dependencies that might indicate feature conflicts[dev-dependencies] featuresf3cddcb
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.