Toolverse
Wszystkie skille

rationalize-deps

autor: quickwit-oss

Zoptymalizuj zależności Cargo — usuń zbędne funkcje i przyspeszy kompilację

Instalacja

Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.

Instalacja

Szybkie info

Kategoria
Backend

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ć

  1. 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.

  2. Wyświetl listę zależności w pliku Cargo.toml, które nie mają ustawionego default-features = false i mogą zawierać zbędne funkcje. Uruchom cargo tree -p nazwa-crate -f "{p} {f}" --edges features, aby zobaczyć, które funkcje są faktycznie wykorzystywane.

  3. 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.

  4. Spróbuj wyłączyć domyślne funkcje, zmieniając wpis w Cargo.toml z some-crate = { version = "1.0" } na some-crate = { version = "1.0", default-features = false }.

  5. Uruchom cargo check --workspace (lub cargo check -p nazwa-pakietu dla 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"] }.

  6. Powtórz weryfikację kompilacji, aż wszystkie zmiany będą działać poprawnie. Zapisz zoptymalizowaną konfigurację zależności w Cargo.toml.

Podobne skille