rationalize-deps
Analyze Cargo.toml dependencies and attempt to remove unused features to reduce compile times and binary size
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
Analyze Cargo.toml dependencies and attempt to remove unused features to reduce compile times and binary size
How to use
Określ, które crate'y chcesz przeanalizować — możesz wybrać konkretną bibliotekę (np. "tokio", "serde"), konkretny moduł workspace'u (np. "quickwit-search") lub "all", aby przeskanować całe repozytorium.
Wyświetl listę zależności w pliku Cargo.toml, które nie mają ustawionego
default-features = falsei mogą zawierać zbędne funkcje. Uruchomcargo tree -p nazwa-crate -f "{p} {f}" --edges features, aby zobaczyć, które funkcje są faktycznie wykorzystywane.Dla każdej kandydackiej zależności sprawdź jej domyślne funkcje na stronie crates.io lub w jej Cargo.toml. Użyj
cargo metadata --format-version=1 | jq '.packages[] | select(.name == "nazwa-crate") | .features', aby uzyskać pełną listę dostępnych funkcji.Spróbuj wyłączyć domyślne funkcje, zmieniając wpis w Cargo.toml z
some-crate = { version = "1.0" }nasome-crate = { version = "1.0", default-features = false }.Uruchom
cargo check --workspace(lubcargo check -p nazwa-pakietudla szybszej weryfikacji). Jeśli kompilacja się nie powiedzie, przeczytaj komunikaty błędów, aby zidentyfikować wymagane funkcje, a następnie dodaj je jawnie:some-crate = { version = "1.0", default-features = false, features = ["potrzebna-funkcja"] }.Powtórz weryfikację kompilacji, aż wszystkie zmiany będą działać poprawnie. Zapisz zoptymalizowaną konfigurację zależności w Cargo.toml.