W poniższym wpisie przedstawię tylko kilka komend, z którymi nie będziemy mieć do czynienia od samego początku pracy z Rust a jednak przydatnymi. Oto te komendy:

cargo tree

pokazuje drzewo zależności dla projektu, przykładowy fragment wyniku dla komendy:

bench-test v0.1.0 (/home/nerull/dev/repos/rust/bench-test)
├── bincode v1.3.1
│   ├── byteorder v1.3.4
│   └── serde v1.0.117
│       └── serde_derive v1.0.117 (proc-macro)
│           ├── proc-macro2 v1.0.21
│           │   └── unicode-xid v0.2.1
│           ├── quote v1.0.7
│           │   └── proc-macro2 v1.0.21 (*)
│           └── syn v1.0.41
│               ├── proc-macro2 v1.0.21 (*)
│               ├── quote v1.0.7 (*)
│               └── unicode-xid v0.2.1
├── flatbuffers v0.6.1
│   └── smallvec v1.4.2

lista nieużywanych zależności w projekcie

cargo udeps

Za pierwszym razem trzeba zainstalować pakiet w cargo za pomocą komendy:

 cargo install cargo-udeps

przykładowy wynik:

warning: unused manifest key: target.x86_64-unknown-linux-gnu.rustflags
    Checking bench-test v0.1.0 (/home/nerull/dev/repos/rust/bench-test)
    Finished dev [unoptimized + debuginfo] target(s) in 0.14s
info: Loading save analysis from "/home/nerull/dev/repos/rust/bench-test/target/debug/deps/save-analysis/bench_test-b8d39e055037d2a8.json"
unused dependencies:
`bench-test v0.1.0 (/home/nerull/dev/repos/rust/bench-test)`
└─── dependencies
     ├─── "bincode"
     ├─── "flatbuffers"
     ├─── "rustc-serialize"
     ├─── "serde"
     ├─── "serde_json"
     └─── "uuid"
Note: These dependencies might be used by other targets.
      To find dependencies that are not used by any target, enable `--all-targets`.
Note: They might be false-positive.
      For example, `cargo-udeps` cannot detect usage of crates that are only used in doc-tests.
      To ignore some of dependencies, write `package.metadata.cargo-udeps.ignore` in Cargo.toml.

żeby mieć pewność trzeba sprawdzić dla wszystkich celów projektu:

cargo udeps --all-targets

rezultat:

warning: unused manifest key: target.x86_64-unknown-linux-gnu.rustflags
    Checking bench-test v0.1.0 (/home/nerull/dev/repos/rust/bench-test)
    Finished dev [unoptimized + debuginfo] target(s) in 0.26s
info: Loading save analysis from "/home/nerull/dev/repos/rust/bench-test/target/debug/deps/save-analysis/bench_test-b8d39e055037d2a8.json"
info: Loading save analysis from "/home/nerull/dev/repos/rust/bench-test/target/debug/deps/save-analysis/tests-20fc2bc8b39eed17.json"
info: Loading save analysis from "/home/nerull/dev/repos/rust/bench-test/target/debug/deps/save-analysis/bench_test-bcb96f035b1085e4.json"
info: Loading save analysis from "/home/nerull/dev/repos/rust/bench-test/target/debug/deps/save-analysis/benchmarks-a09e6c4afe422f4f.json"
unused dependencies:
`bench-test v0.1.0 (/home/nerull/dev/repos/rust/bench-test)`
└─── dependencies
     ├─── "bincode"
     ├─── "rustc-serialize"
     └─── "uuid"
Note: They might be false-positive.
      For example, `cargo-udeps` cannot detect usage of crates that are only used in doc-tests.
      To ignore some of dependencies, write `package.metadata.cargo-udeps.ignore` in Cargo.toml.

Jak widać w powyższym wyniku lista nie używanych zależności jest mniejsza

Komenda sprawdzająca aktualność pakietów:

cargo outdated -wR

Za pierwszym razem należy zainstalować pakiet komendą:

cargo install cargo-outdated

Przykładowy wynik komendy:

bench-test
================
Name   Project  Compat  Latest  Kind    Platform
----   -------  ------  ------  ----    --------
rayon  1.4.1    1.5.0   1.5.0   Normal  ---
tokio  0.2.22   ---     0.3.1   Normal  ---

Weryfikacja duplikacji w zależnościach:

cargo tree --duplicate

Przykładowy fragment wyniku:

bitflags v0.7.0
└── decimal v1.0.1
    └── cassandra-cpp v0.15.1
        └── bench-test v0.1.0 (/home/nerull/dev/repos/rust/bench-test)

bitflags v1.2.1
├── clap v2.33.3
│   └── criterion v0.3.3
│       [dev-dependencies]
│       └── bench-test v0.1.0 (/home/nerull/dev/repos/rust/bench-test)
└── lexical-core v0.7.4
    └── nom v5.1.2
        └── config v0.10.1
            └── bench-test v0.1.0 (/home/nerull/dev/repos/rust/bench-test)

Komenda pozwalająca wy-listować wszystkie kompilatory Rust:

rustup show

Przykładowy wynik:

Default host: x86_64-unknown-linux-gnu
rustup home:  /home/nerull/.rustup

installed toolchains
--------------------

stable-x86_64-pc-windows-gnu
stable-x86_64-unknown-linux-gnu
nightly-x86_64-unknown-linux-gnu (default)
1.42.0-x86_64-unknown-linux-gnu

active toolchain
----------------

nightly-x86_64-unknown-linux-gnu (directory override for '/home/nerull/dev/repos/rust/bench-test')
rustc 1.49.0-nightly (dd7fc54eb 2020-10-15)

Zmiana domyślnego kompilatora na wersje nightly:

rustup default nightly

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *