rationalize-deps
Zoptymalizuj zależności Cargo — usuń zbędne funkcje i przyspeszy kompilację
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Skill analizuje plik Cargo.toml i identyfikuje zależności z włączonymi domyślnymi funkcjami, które mogą być niepotrzebne. Automatycznie testuje wyłączenie default-features, znajduje rzeczywiście używane funkcje i weryfikuje kompilację po zmianach. Zmniejsza czas budowania i rozmiar binarki poprzez usunięcie zbędnego kodu z zależności.
Jak używać
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.