Find unused dependencies in Cargo.toml

Overview

cargo-udeps

crates.io dependency status

Find unused dependencies in Cargo.toml.

While compilation of this tool also works on Rust stable, it needs Rust nightly to actually run.

Installation

GitHub Releases

https://github.com/est31/cargo-udeps/releases

cargo install (crates.io)

cargo install cargo-udeps --locked

cargo install (master)

cargo install --git https://github.com/est31/cargo-udeps --locked

Dedicated packages

Some GNU/Linux distros have packaged cargo-udeps:

  • Nix/Nix OS: cargo-udeps
  • Arch Linux: pacman -S cargo-udeps

Usage

cargo +nightly udeps

It either prints out a "unused crates" line listing the crates, or it prints out a line saying that no crates were unused.

Ignoring some of the dependencies

To ignore some of the dependencies, add package.metadata.cargo-udeps.ignore to Cargo.toml.

[package.metadata.cargo-udeps.ignore]
normal = ["if_chain"]
#development = []
#build = []

[dependencies]
if_chain = "1.0.0" # Used only in doc-tests, which `cargo-udeps` cannot check.

Known bugs

  • Some unused crates might not be detected. This includes crates used by std and its dependencies as well as crates that are already being used by dependencies of the studied crate.

  • Crates are currently only handled on a per name basis. Two crates with the same name but different versions would be a problem.

Trophy case

This is a list of cases where unused dependencies were found using cargo-udeps. You are welcome to expand it:

License

This tool is distributed under the terms of both the MIT license and the Apache License (Version 2.0), at your option.

See LICENSE for details.

License of your contributions

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Comments
  • Segmentation fault when running on nightly-x86_64-unknown-linux-musl

    Segmentation fault when running on nightly-x86_64-unknown-linux-musl

    My environment:

    + rustup --version
    rustup 1.23.1 (2020-11-30)
    ...
    cargo 1.50.0 (f04e7fab7 2021-02-04)
    

    The output from the command when running in a workspace with ~15 crates:

    $ rustup show
    Default host: x86_64-unknown-linux-musl
    rustup home:  /usr/local/rustup
    installed toolchains
    --------------------
    nightly-x86_64-unknown-linux-musl
    1.50.0-x86_64-unknown-linux-musl (default)
    active toolchain
    ----------------
    1.50.0-x86_64-unknown-linux-musl (default)
    rustc 1.50.0 (cb75ad5db 2021-02-10)
    
    $ cargo +nightly udeps --release --all-targets
    /bin/bash: line 147:    26 Segmentation fault      (core dumped) cargo +nightly udeps --release --all-targets
    

    Any advice on how to resolve this issue? Thanks.

    opened by seanpianka 25
  • cargo install cargo-udeps --locked: `linking with cc failed`

    cargo install cargo-udeps --locked: `linking with cc failed`

    Stdout
    % cargo install cargo-udeps --locked
        Updating crates.io index
      Installing cargo-udeps v0.1.15
       Compiling libc v0.2.79
       Compiling pkg-config v0.3.18
       Compiling cfg-if v0.1.10
       Compiling autocfg v1.0.1
       Compiling proc-macro2 v1.0.24
       Compiling unicode-xid v0.2.1
       Compiling syn v1.0.43
       Compiling version_check v0.9.2
       Compiling serde_derive v1.0.116
       Compiling serde v1.0.116
       Compiling lazy_static v1.4.0
       Compiling bitflags v1.2.1
       Compiling crc32fast v1.2.0
       Compiling log v0.4.11
       Compiling getrandom v0.1.15
       Compiling memchr v2.3.3
       Compiling tinyvec v0.3.4
       Compiling matches v0.1.8
       Compiling ryu v1.0.5
       Compiling typenum v1.12.0
       Compiling percent-encoding v2.1.0
       Compiling regex-syntax v0.6.18
       Compiling serde_json v1.0.58
       Compiling openssl-probe v0.1.2
       Compiling anyhow v1.0.33
       Compiling curl v0.4.33
       Compiling openssl v0.10.30
       Compiling foreign-types-shared v0.1.1
       Compiling ppv-lite86 v0.2.9
       Compiling unicode-width v0.1.8
       Compiling itoa v0.4.6
       Compiling same-file v1.0.6
       Compiling vec_map v0.8.2
       Compiling utf8parse v0.1.1
       Compiling ansi_term v0.11.0
       Compiling fnv v1.0.7
       Compiling quick-error v1.2.3
       Compiling unicode-segmentation v1.6.0
       Compiling strsim v0.8.0
       Compiling semver-parser v0.7.0
       Compiling hex v0.3.2
       Compiling termcolor v1.1.0
       Compiling remove_dir_all v0.5.3
       Compiling shell-escape v0.1.5
       Compiling glob v0.3.0
       Compiling rustc-workspace-hack v1.0.0
       Compiling bytesize v1.0.1
       Compiling opener v0.4.1
       Compiling hex v0.4.2
       Compiling humantime v2.0.1
       Compiling home v0.5.3
       Compiling lazycell v1.3.0
       Compiling ansi_term v0.12.1
       Compiling thread_local v1.0.1
       Compiling proc-macro-error-attr v1.0.4
       Compiling proc-macro-error v1.0.4
       Compiling im-rc v15.0.0
       Compiling crossbeam-utils v0.7.2
       Compiling unicode-bidi v0.3.4
       Compiling unicode-normalization v0.1.13
       Compiling foreign-types v0.3.2
       Compiling textwrap v0.11.0
       Compiling walkdir v2.3.1
       Compiling vte v0.3.3
       Compiling humantime v1.3.0
       Compiling heck v0.3.1
       Compiling strip-ansi-escapes v0.1.0
       Compiling idna v0.2.0
       Compiling jobserver v0.1.21
       Compiling filetime v0.2.12
       Compiling socket2 v0.3.15
       Compiling atty v0.2.14
       Compiling num_cpus v1.13.0
       Compiling quote v1.0.7
       Compiling aho-corasick v0.7.13
       Compiling bstr v0.2.13
       Compiling tar v0.4.30
       Compiling cc v1.0.61
       Compiling rand_core v0.5.1
       Compiling clap v2.33.3
       Compiling url v2.1.1
       Compiling bitmaps v2.1.0
       Compiling regex v1.3.9
       Compiling rand_chacha v0.2.2
       Compiling rand_xoshiro v0.4.0
       Compiling libz-sys v1.1.2
       Compiling openssl-sys v0.9.58
       Compiling libnghttp2-sys v0.1.4+1.41.0
       Compiling curl-sys v0.4.36+curl-7.71.1
       Compiling libssh2-sys v0.2.19
       Compiling libgit2-sys v0.12.13+1.0.1
       Compiling sized-chunks v0.6.2
       Compiling rand v0.7.3
       Compiling globset v0.4.5
       Compiling env_logger v0.7.1
       Compiling ignore v0.4.16
       Compiling tempfile v3.1.0
       Compiling structopt-derive v0.4.12
       Compiling flate2 v1.0.18
       Compiling structopt v0.3.19
       Compiling cargo v0.48.0
       Compiling crypto-hash v0.3.4
       Compiling git2 v0.13.11
       Compiling semver v0.10.0
       Compiling toml v0.5.6
       Compiling serde_ignored v0.1.2
       Compiling cargo-platform v0.1.1
       Compiling crates-io v0.31.1
       Compiling rustfix v0.5.1
       Compiling git2-curl v0.14.1
       Compiling cargo-udeps v0.1.15
    error: linking with `cc` failed: exit code: 1
      |
      = note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-Wl,--eh-frame-hdr" "-L" "/home/linusb/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/tmp/cargo-installJlrhXh/release/deps/cargo_udeps-4ad270e2c9a4b29f.cargo_udeps.8rvwrm26-cgu.0.rcgu.o" "/tmp/cargo-installJlrhXh/release/deps/cargo_udeps-4ad270e2c9a4b29f.cargo_udeps.8rvwrm26-cgu.1.rcgu.o" "/tmp/cargo-installJlrhXh/release/deps/cargo_udeps-4ad270e2c9a4b29f.cargo_udeps.8rvwrm26-cgu.10.rcgu.o" "/tmp/cargo-installJlrhXh/release/deps/cargo_udeps-4ad270e2c9a4b29f.cargo_udeps.8rvwrm26-cgu.11.rcgu.o" "/tmp/cargo-installJlrhXh/release/deps/cargo_udeps-4ad270e2c9a4b29f.cargo_udeps.8rvwrm26-cgu.12.rcgu.o" "/tmp/cargo-installJlrhXh/release/deps/cargo_udeps-4ad270e2c9a4b29f.cargo_udeps.8rvwrm26-cgu.13.rcgu.o" "/tmp/cargo-installJlrhXh/release/deps/cargo_udeps-4ad270e2c9a4b29f.cargo_udeps.8rvwrm26-cgu.14.rcgu.o" "/tmp/cargo-installJlrhXh/release/deps/cargo_udeps-4ad270e2c9a4b29f.cargo_udeps.8rvwrm26-cgu.15.rcgu.o" "/tmp/cargo-installJlrhXh/release/deps/cargo_udeps-4ad270e2c9a4b29f.cargo_udeps.8rvwrm26-cgu.2.rcgu.o" "/tmp/cargo-installJlrhXh/release/deps/cargo_udeps-4ad270e2c9a4b29f.cargo_udeps.8rvwrm26-cgu.3.rcgu.o" "/tmp/cargo-installJlrhXh/release/deps/cargo_udeps-4ad270e2c9a4b29f.cargo_udeps.8rvwrm26-cgu.4.rcgu.o" "/tmp/cargo-installJlrhXh/release/deps/cargo_udeps-4ad270e2c9a4b29f.cargo_udeps.8rvwrm26-cgu.5.rcgu.o" "/tmp/cargo-installJlrhXh/release/deps/cargo_udeps-4ad270e2c9a4b29f.cargo_udeps.8rvwrm26-cgu.6.rcgu.o" "/tmp/cargo-installJlrhXh/release/deps/cargo_udeps-4ad270e2c9a4b29f.cargo_udeps.8rvwrm26-cgu.7.rcgu.o" "/tmp/cargo-installJlrhXh/release/deps/cargo_udeps-4ad270e2c9a4b29f.cargo_udeps.8rvwrm26-cgu.8.rcgu.o" "/tmp/cargo-installJlrhXh/release/deps/cargo_udeps-4ad270e2c9a4b29f.cargo_udeps.8rvwrm26-cgu.9.rcgu.o" "-o" "/tmp/cargo-installJlrhXh/release/deps/cargo_udeps-4ad270e2c9a4b29f" "/tmp/cargo-installJlrhXh/release/deps/cargo_udeps-4ad270e2c9a4b29f.snemrwk7v1kupuf.rcgu.o" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-Wl,-O1" "-nodefaultlibs" "-L" "/tmp/cargo-installJlrhXh/release/deps" "-L" "/usr/lib" "-L" "/tmp/cargo-installJlrhXh/release/build/libnghttp2-sys-22c16f041504b78d/out/i/lib" "-L" "/usr/lib/openssl-1.0" "-L" "/usr/lib" "-L" "/tmp/cargo-installJlrhXh/release/build/libssh2-sys-b6d0c21048e26722/out/build" "-L" "/home/linusb/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/tmp/cargo-installJlrhXh/release/deps/libcargo_udeps-2fc5a7b1e77b30a1.rlib" "/tmp/cargo-installJlrhXh/release/deps/libstructopt-1d18183a458d84ee.rlib" "/tmp/cargo-installJlrhXh/release/deps/libansi_term-1eef6c07e7bfb725.rlib" "/tmp/cargo-installJlrhXh/release/deps/libcargo-becaee37a9ef7bcc.rlib" "/tmp/cargo-installJlrhXh/release/deps/libunicode_xid-a022950b7ec6389a.rlib" "/tmp/cargo-installJlrhXh/release/deps/libhex-56d14df33fe6856e.rlib" "/tmp/cargo-installJlrhXh/release/deps/libhome-69013ab9cb34ec5f.rlib" "/tmp/cargo-installJlrhXh/release/deps/libopener-9bea2681af56d383.rlib" "/tmp/cargo-installJlrhXh/release/deps/libim_rc-6908106d0547ee58.rlib" "/tmp/cargo-installJlrhXh/release/deps/librand_xoshiro-14db6d0a03039928.rlib" "/tmp/cargo-installJlrhXh/release/deps/libsized_chunks-0cf4989e400b899e.rlib" "/tmp/cargo-installJlrhXh/release/deps/libbitmaps-deea59fe81620cdc.rlib" "/tmp/cargo-installJlrhXh/release/deps/libtypenum-d7ca20abc12abbe8.rlib" "/tmp/cargo-installJlrhXh/release/deps/libtoml-8402a86390b16ad3.rlib" "/tmp/cargo-installJlrhXh/release/deps/libstrip_ansi_escapes-359611d286e9925f.rlib" "/tmp/cargo-installJlrhXh/release/deps/libvte-dca5c58a4af53e85.rlib" "/tmp/cargo-installJlrhXh/release/deps/libutf8parse-6e6008836aa47294.rlib" "/tmp/cargo-installJlrhXh/release/deps/libhumantime-7a0fb41d81f906e5.rlib" "/tmp/cargo-installJlrhXh/release/deps/libnum_cpus-06fb0fe06e8892a9.rlib" "/tmp/cargo-installJlrhXh/release/deps/libserde_ignored-49493f7cbb7bdfce.rlib" "/tmp/cargo-installJlrhXh/release/deps/libcrypto_hash-cb087f1bb9035e24.rlib" "/tmp/cargo-installJlrhXh/release/deps/libopenssl-87fe2bf9690c6b2e.rlib" "/tmp/cargo-installJlrhXh/release/deps/libforeign_types-e905659fd4f440fd.rlib" "/tmp/cargo-installJlrhXh/release/deps/libforeign_types_shared-23e9a159fd1edb9e.rlib" "/tmp/cargo-installJlrhXh/release/deps/libhex-ef2ab26148ee3bcd.rlib" "/tmp/cargo-installJlrhXh/release/deps/libshell_escape-b96d9154467062fe.rlib" "/tmp/cargo-installJlrhXh/release/deps/libclap-3f36a4849f1545d8.rlib" "/tmp/cargo-installJlrhXh/release/deps/libvec_map-9c252890059a866d.rlib" "/tmp/cargo-installJlrhXh/release/deps/libtextwrap-d6ca0e7161200f6a.rlib" "/tmp/cargo-installJlrhXh/release/deps/libunicode_width-b72199703ba264b4.rlib" "/tmp/cargo-installJlrhXh/release/deps/libstrsim-d9cf646f3a963a27.rlib" "/tmp/cargo-installJlrhXh/release/deps/libatty-56b7b5b0fc589437.rlib" "/tmp/cargo-installJlrhXh/release/deps/libansi_term-eec6258261c7a122.rlib" "/tmp/cargo-installJlrhXh/release/deps/libignore-a71bbbd9142b05bd.rlib" "/tmp/cargo-installJlrhXh/release/deps/libwalkdir-a4a6df542d335966.rlib" "/tmp/cargo-installJlrhXh/release/deps/libsame_file-7b7f7655017bd7b0.rlib" "/tmp/cargo-installJlrhXh/release/deps/libglobset-eb7f1fbaf9fce51b.rlib" "/tmp/cargo-installJlrhXh/release/deps/libregex-26b208ca90b46e27.rlib" "/tmp/cargo-installJlrhXh/release/deps/libthread_local-0e43aa4642bab06e.rlib" "/tmp/cargo-installJlrhXh/release/deps/libregex_syntax-a64aeef778f68b17.rlib" "/tmp/cargo-installJlrhXh/release/deps/libfnv-47e7fa303c27fcd0.rlib" "/tmp/cargo-installJlrhXh/release/deps/libbstr-162345631364e459.rlib" "/tmp/cargo-installJlrhXh/release/deps/libaho_corasick-118d8944ceaaaea2.rlib" "/tmp/cargo-installJlrhXh/release/deps/libmemchr-446044cc20eec784.rlib" "/tmp/cargo-installJlrhXh/release/deps/libcrates_io-1f8a19b7d98af40d.rlib" "/tmp/cargo-installJlrhXh/release/deps/librustfix-4969e68bfdc6ada2.rlib" "/tmp/cargo-installJlrhXh/release/deps/libserde_json-886b6b382248ec5b.rlib" "/tmp/cargo-installJlrhXh/release/deps/libryu-0ce1a54a4a2f4496.rlib" "/tmp/cargo-installJlrhXh/release/deps/libitoa-3845f42908e2d57d.rlib" "/tmp/cargo-installJlrhXh/release/deps/libtar-72bda84d2f9d60b3.rlib" "/tmp/cargo-installJlrhXh/release/deps/libflate2-21df2df80e272602.rlib" "/tmp/cargo-installJlrhXh/release/deps/libcrc32fast-713a53fd85ece4af.rlib" "/tmp/cargo-installJlrhXh/release/deps/libgit2-ac1d7c0bcdb097dd.rlib" "/tmp/cargo-installJlrhXh/release/deps/libopenssl_probe-6060252f9d2ab544.rlib" "/tmp/cargo-installJlrhXh/release/deps/liblibgit2_sys-7a368d2a53589104.rlib" "/tmp/cargo-installJlrhXh/release/deps/liblibssh2_sys-b63aa527293ffb5e.rlib" "/tmp/cargo-installJlrhXh/release/deps/liblibz_sys-3cbd50681ddc35fc.rlib" "/tmp/cargo-installJlrhXh/release/deps/libbitflags-3481844fb16a27e3.rlib" "/tmp/cargo-installJlrhXh/release/deps/libtempfile-c88ed794bea65fb8.rlib" "/tmp/cargo-installJlrhXh/release/deps/librand-306b02ba05716fab.rlib" "/tmp/cargo-installJlrhXh/release/deps/librand_chacha-20936efc05fdcf58.rlib" "/tmp/cargo-installJlrhXh/release/deps/libppv_lite86-2b5b5b6e438ae06d.rlib" "/tmp/cargo-installJlrhXh/release/deps/librand_core-fae5a7de1f05876c.rlib" "/tmp/cargo-installJlrhXh/release/deps/libgetrandom-379b55f4bcba82a9.rlib" "/tmp/cargo-installJlrhXh/release/deps/libremove_dir_all-265754eac9db3c5f.rlib" "/tmp/cargo-installJlrhXh/release/deps/libglob-02ff78eb7fcfed36.rlib" "/tmp/cargo-installJlrhXh/release/deps/libtermcolor-8b875c960548daec.rlib" "/tmp/cargo-installJlrhXh/release/deps/libcurl-edcf9252205263b3.rlib" "/tmp/cargo-installJlrhXh/release/deps/libopenssl_sys-25de0af3bd09c6e2.rlib" "/tmp/cargo-installJlrhXh/release/deps/libsocket2-f3dae21f7a869d97.rlib" "/tmp/cargo-installJlrhXh/release/deps/libcurl_sys-ba794b725aba7076.rlib" "/tmp/cargo-installJlrhXh/release/deps/libbytesize-065391c583124529.rlib" "/tmp/cargo-installJlrhXh/release/deps/liburl-d059e2bc568f5cc7.rlib" "/tmp/cargo-installJlrhXh/release/deps/libpercent_encoding-bfd9f3d20760f93a.rlib" "/tmp/cargo-installJlrhXh/release/deps/libidna-d68e9a57c422e9d7.rlib" "/tmp/cargo-installJlrhXh/release/deps/libunicode_normalization-ddbc5e3edd10896b.rlib" "/tmp/cargo-installJlrhXh/release/deps/libtinyvec-955847b5f37639b2.rlib" "/tmp/cargo-installJlrhXh/release/deps/libunicode_bidi-f70b1d5bae5305dd.rlib" "/tmp/cargo-installJlrhXh/release/deps/libmatches-00a9da1690089f34.rlib" "/tmp/cargo-installJlrhXh/release/deps/libcrossbeam_utils-490be52ff7a8bc43.rlib" "/tmp/cargo-installJlrhXh/release/deps/liblazy_static-53201e5af8cd3135.rlib" "/tmp/cargo-installJlrhXh/release/deps/liblazycell-90f274e3320ca1f1.rlib" "/tmp/cargo-installJlrhXh/release/deps/libjobserver-49da11ed1cb22a1c.rlib" "/tmp/cargo-installJlrhXh/release/deps/libfiletime-ebf7055f8bcc7d77.rlib" "/tmp/cargo-installJlrhXh/release/deps/liblibc-53f383edf340e4c8.rlib" "/tmp/cargo-installJlrhXh/release/deps/libsemver-0ff6f0d850b1b763.rlib" "/tmp/cargo-installJlrhXh/release/deps/libsemver_parser-73563d397a1dfb24.rlib" "/tmp/cargo-installJlrhXh/release/deps/libcargo_platform-0393f88083d8a8f5.rlib" "/tmp/cargo-installJlrhXh/release/deps/libserde-7e2cd3ba2610b189.rlib" "/tmp/cargo-installJlrhXh/release/deps/liblog-e2193921fa6fc243.rlib" "/tmp/cargo-installJlrhXh/release/deps/libcfg_if-0550b692bf420f09.rlib" "/tmp/cargo-installJlrhXh/release/deps/libanyhow-72ef736a84ae5634.rlib" "-Wl,--start-group" "/home/linusb/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-faa3fd6c69b73b7d.rlib" "/home/linusb/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-a9e48811766e19b7.rlib" "/home/linusb/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-dec35b3159638863.rlib" "/home/linusb/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-54ba75ba19df3515.rlib" "/home/linusb/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-b4e081b17e50a5f3.rlib" "/home/linusb/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-e696cf3aebf90283.rlib" "/home/linusb/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-c9508c34f45c1407.rlib" "/home/linusb/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-fe83234631186fa0.rlib" "/home/linusb/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-ce3ade83fc902949.rlib" "/home/linusb/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-2c834b52f045959b.rlib" "/home/linusb/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-c2f088360802c114.rlib" "/home/linusb/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-4a28d8f1751385f2.rlib" "/home/linusb/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-ca9410ae33b10c13.rlib" "/home/linusb/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-d74f3c28111d31b0.rlib" "/home/linusb/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-c52e5d6301e1bd59.rlib" "/home/linusb/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-2675a9a46b5cec89.rlib" "-Wl,--end-group" "/home/linusb/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-f6fccc8824a0c5ae.rlib" "-Wl,-Bdynamic" "-lgit2" "-lz" "-lssl" "-lcrypto" "-lcurl" "-ldl" "-lrt" "-lpthread" "-lgcc_s" "-lc" "-lm" "-lrt" "-lpthread" "-lutil" "-ldl" "-lutil"
      = note: /usr/bin/ld: /tmp/cargo-installJlrhXh/release/deps/libopenssl-87fe2bf9690c6b2e.rlib(openssl-87fe2bf9690c6b2e.openssl.6wre5yi0-cgu.2.rcgu.o): in function `core::ptr::drop_in_place':
              openssl.6wre5yi0-cgu.2:(.text._ZN4core3ptr13drop_in_place17h4dd8e6ab0185ae5cE+0xb2): undefined reference to `EVP_MD_CTX_destroy'
              /usr/bin/ld: /tmp/cargo-installJlrhXh/release/deps/libopenssl-87fe2bf9690c6b2e.rlib(openssl-87fe2bf9690c6b2e.openssl.6wre5yi0-cgu.2.rcgu.o): in function `openssl::hash::Hasher::new':
              openssl.6wre5yi0-cgu.2:(.text._ZN7openssl4hash6Hasher3new17h128f04ef0fa3b360E+0x17): undefined reference to `EVP_MD_CTX_create'
              /usr/bin/ld: openssl.6wre5yi0-cgu.2:(.text._ZN7openssl4hash6Hasher3new17h128f04ef0fa3b360E+0xc7): undefined reference to `EVP_MD_CTX_destroy'
              /usr/bin/ld: /tmp/cargo-installJlrhXh/release/deps/libopenssl-87fe2bf9690c6b2e.rlib(openssl-87fe2bf9690c6b2e.openssl.6wre5yi0-cgu.2.rcgu.o): in function `<openssl::hash::Hasher as core::ops::drop::Drop>::drop':
              openssl.6wre5yi0-cgu.2:(.text._ZN63_$LT$openssl..hash..Hasher$u20$as$u20$core..ops..drop..Drop$GT$4drop17ha984604a97a1807fE+0xb2): undefined reference to `EVP_MD_CTX_destroy'
              /usr/bin/ld: /tmp/cargo-installJlrhXh/release/deps/liblibssh2_sys-b63aa527293ffb5e.rlib(openssl.o): in function `_libssh2_cipher_init':
              openssl.c:(.text._libssh2_cipher_init+0x18): undefined reference to `EVP_CIPHER_CTX_init'
              /usr/bin/ld: /tmp/cargo-installJlrhXh/release/deps/liblibssh2_sys-b63aa527293ffb5e.rlib(openssl.o): in function `_libssh2_openssl_crypto_init':
              openssl.c:(.text._libssh2_openssl_crypto_init+0x5): undefined reference to `OPENSSL_add_all_algorithms_noconf'
              /usr/bin/ld: openssl.c:(.text._libssh2_openssl_crypto_init+0xa): undefined reference to `OpenSSL_add_all_ciphers'
              /usr/bin/ld: openssl.c:(.text._libssh2_openssl_crypto_init+0xf): undefined reference to `OpenSSL_add_all_digests'
              /usr/bin/ld: /tmp/cargo-installJlrhXh/release/deps/liblibssh2_sys-b63aa527293ffb5e.rlib(crypt.o): in function `crypt_dtor':
              crypt.c:(.text.crypt_dtor+0x1e): undefined reference to `EVP_CIPHER_CTX_cleanup'
              /usr/bin/ld: /tmp/cargo-installJlrhXh/release/deps/libopenssl_sys-25de0af3bd09c6e2.rlib(openssl_sys-25de0af3bd09c6e2.openssl_sys.b3gyrhw5-cgu.8.rcgu.o): in function `_ZN3std4sync4once4Once9call_once28_$u7b$$u7b$closure$u7d$$u7d$17hb1c55aede3dc2b46E.llvm.14332668503325837102':
              openssl_sys.b3gyrhw5-cgu.8:(.text._ZN3std4sync4once4Once9call_once28_$u7b$$u7b$closure$u7d$$u7d$17hb1c55aede3dc2b46E.llvm.14332668503325837102+0x1b): undefined reference to `SSL_library_init'
              /usr/bin/ld: openssl_sys.b3gyrhw5-cgu.8:(.text._ZN3std4sync4once4Once9call_once28_$u7b$$u7b$closure$u7d$$u7d$17hb1c55aede3dc2b46E.llvm.14332668503325837102+0x21): undefined reference to `SSL_load_error_strings'
              /usr/bin/ld: openssl_sys.b3gyrhw5-cgu.8:(.text._ZN3std4sync4once4Once9call_once28_$u7b$$u7b$closure$u7d$$u7d$17hb1c55aede3dc2b46E.llvm.14332668503325837102+0x27): undefined reference to `OPENSSL_add_all_algorithms_noconf'
              /usr/bin/ld: openssl_sys.b3gyrhw5-cgu.8:(.text._ZN3std4sync4once4Once9call_once28_$u7b$$u7b$closure$u7d$$u7d$17hb1c55aede3dc2b46E.llvm.14332668503325837102+0x2d): undefined reference to `CRYPTO_num_locks'
              /usr/bin/ld: openssl_sys.b3gyrhw5-cgu.8:(.text._ZN3std4sync4once4Once9call_once28_$u7b$$u7b$closure$u7d$$u7d$17hb1c55aede3dc2b46E.llvm.14332668503325837102+0x1aa): undefined reference to `CRYPTO_set_locking_callback'
              /usr/bin/ld: openssl_sys.b3gyrhw5-cgu.8:(.text._ZN3std4sync4once4Once9call_once28_$u7b$$u7b$closure$u7d$$u7d$17hb1c55aede3dc2b46E.llvm.14332668503325837102+0x1c1): undefined reference to `CRYPTO_set_id_callback'
              collect2: error: ld returned 1 exit status
    
    
    error: aborting due to previous error
    
    error: failed to compile `cargo-udeps v0.1.15`, intermediate artifacts can be found at `/tmp/cargo-installJlrhXh`
    
    Caused by:
      could not compile `cargo-udeps`.
    
    To learn more, run the command again with --verbose.
    
    bug 
    opened by mankinskin 8
  • Panic when used with complex dependency graph

    Panic when used with complex dependency graph

    To reproduce, check out noria (specifically https://github.com/mit-pdos/noria/commit/fb1da756d41b40fccf3c5d1266acbaaba586f0a6) and run cargo udeps in the root:

    cargo udeps
        Blocking waiting for file lock on build directory
        Checking nix v0.16.1
        Checking noria v0.3.0 (/home/jon/dev/projects/noria/noria)
        Checking trawler-mysql v0.3.0 (/home/jon/dev/projects/noria/noria-benchmarks/lobsters)
    thread 'rustc' panicked at 'called `Option::unwrap()` on a `None` value', src/librustc_typeck/check/mod.rs:840:14
    stack backtrace:
       0: backtrace::backtrace::libunwind::trace
                 at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/libunwind.rs:88
       1: backtrace::backtrace::trace_unsynchronized
                 at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/mod.rs:66
       2: std::sys_common::backtrace::_print_fmt
                 at src/libstd/sys_common/backtrace.rs:77
       3: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
                 at src/libstd/sys_common/backtrace.rs:59
       4: core::fmt::write
                 at src/libcore/fmt/mod.rs:1052
       5: std::io::Write::write_fmt
                 at src/libstd/io/mod.rs:1426
       6: std::sys_common::backtrace::_print
                 at src/libstd/sys_common/backtrace.rs:62
       7: std::sys_common::backtrace::print
                 at src/libstd/sys_common/backtrace.rs:49
       8: std::panicking::default_hook::{{closure}}
                 at src/libstd/panicking.rs:204
       9: std::panicking::default_hook
                 at src/libstd/panicking.rs:224
      10: rustc_driver::report_ice
      11: <alloc::boxed::Box<F> as core::ops::function::Fn<A>>::call
                 at /rustc/698fcd38fa9548e64a2092ff48c9d15ceb57d40c/src/liballoc/boxed.rs:1029
      12: proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::enter::{{closure}}::{{closure}}
                 at /rustc/698fcd38fa9548e64a2092ff48c9d15ceb57d40c/src/libproc_macro/bridge/client.rs:305
      13: std::panicking::rust_panic_with_hook
                 at src/libstd/panicking.rs:476
      14: rust_begin_unwind
                 at src/libstd/panicking.rs:380
      15: core::panicking::panic_fmt
                 at src/libcore/panicking.rs:85
      16: core::panicking::panic
                 at src/libcore/panicking.rs:52
      17: rustc_typeck::check::has_typeck_tables
      18: rustc::ty::query::__query_compute::has_typeck_tables
      19: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::has_typeck_tables>::compute
      20: rustc::dep_graph::graph::DepGraph::with_task_impl
      21: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query
      22: <rustc_save_analysis::dump_visitor::DumpVisitor as syntax::visit::Visitor>::visit_ty
      23: <rustc_save_analysis::dump_visitor::DumpVisitor as syntax::visit::Visitor>::visit_item
      24: <rustc_save_analysis::dump_visitor::DumpVisitor as syntax::visit::Visitor>::visit_item
      25: <rustc_save_analysis::dump_visitor::DumpVisitor as syntax::visit::Visitor>::visit_mod
      26: rustc::dep_graph::graph::DepGraph::with_ignore
      27: rustc::ty::context::tls::enter_global
      28: rustc_interface::interface::run_compiler_in_existing_thread_pool
      29: scoped_tls::ScopedKey<T>::set
      30: syntax::with_globals
    note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
    
    error: internal compiler error: unexpected panic
    
    note: the compiler unexpectedly panicked. this is a bug.
    
    note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
    
    note: rustc 1.42.0-nightly (698fcd38f 2020-01-26) running on x86_64-unknown-linux-gnu
    
    note: compiler flags: -Z save-analysis -C debuginfo=2 -C incremental -C target-cpu=native --crate-type lib
    
    note: some of the compiler flags provided by cargo are hidden
    
    query stack during panic:
    #0 [has_typeck_tables] processing `<controller::Controller<A> as tower_service::Service<controller::ControllerRequest>>::Future::{{opaque}}#0`
    end of query stack
    error: could not compile `noria`.
    

    Note that this also happens if you run it in a particular sub-crate's root (like noria/).

    bug 
    opened by jonhoo 8
  • Use structopt

    Use structopt

    • Migrates to Rust 2018.
    • Uses structopt and constructs impl ArgMatchesExt with a HashMap.
    • Constructs a Config and configure it in main() function.
    • Replaces StrErr with failure::Error and exits with cargo::exit_with_error.
    • Suggests to enable --all-targets when it is not present && "unused dependencies" are detected.
    • Rewrote testsuite as a true integration-test (setting $RUSTC to the rustc location of $CARGO_UDEPS_TEST_TOOLCHAIN || "nightly") and runs it on the CI.
    • "Downgrades" action-gh-release used in ci.yml from v0.1.3 to v1 which is implemented as a docker container. action-gh-release is tested on only ubuntu-latest and the v0.1.3 does not work on macOS.
    opened by qryxip 7
  • Fix nightly compilation error

    Fix nightly compilation error

    This crate no longer compiles under the latest nightly.

    We've had to disable this in our CI, tracked here: https://github.com/bevyengine/bevy/issues/5155

    opened by alice-i-cecile 6
  • Sometimes compiler panics!

    Sometimes compiler panics!

    Sometimes I face this long error message:

    thread 'rustc' panicked at 'failed to lookup `SourceFile` in new context', compiler/rustc_query_impl/src/on_disk_cache.rs:500:22
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
    
    error: internal compiler error: unexpected panic
    
    note: the compiler unexpectedly panicked. this is a bug.
    
    note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md
    
    note: rustc 1.59.0-nightly (83b15bfe1 2021-12-28) running on x86_64-unknown-linux-gnu
    
    note: compiler flags: -Z binary-dep-depinfo -Z save-analysis -C embed-bitcode=no -C debug-assertions=off -C overflow-checks=on -C incremental
    
    note: some of the compiler flags provided by cargo are hidden
    
    query stack during panic:
    #0 [typeck] type-checking `some::where::something`
    #1 [analysis] running analysis passes on this crate
    end of query stack
    
    opened by omid 6
  • json output: `unused_deps` may be non-empty even if all dependencies are used

    json output: `unused_deps` may be non-empty even if all dependencies are used

    {"success":true,"unused_deps":{"some crate":{"manifest_path":"/some/location","normal":[],"development":[],"build":[]}},"note":null}
    

    is what I see when I build a workspace with many crates. The unused_deps map gets populated with further crates if and when they contain unused crates.

    I think it might be because the some_crate is the only crate that has cargo-udeps.ignore specified in it.

    opened by nagisa 6
  • Switch from Travis CI to GitHub Actions

    Switch from Travis CI to GitHub Actions

    The biggest advantage of GitHub Actions is this.

    • You can execute up to 20 workflows concurrently per repository.
    • You can execute up to 1000 API requests in an hour across all actions within a repository.
    • Each job in a workflow can run for up to 6 hours of execution time.
    • You can run up to 20 jobs concurrently per repository across all workflows.

    Furthermore,

    • We can use sophisticated scripts as components. (for example, actions-rs)
    • $GITHUB_TOKEN is automatically set.
    opened by qryxip 6
  • Current implementation cannot handle multiple crates with the same `lib` name

    Current implementation cannot handle multiple crates with the same `lib` name

    When running cargo +nightly udeps against https://github.com/habitat-sh/habitat:

    ➤ cargo +nightly udeps
      Downloaded arc-swap v0.4.2
      Downloaded chrono v0.4.9
    …
      Downloaded 34 crates (4.0 MB) in 8.13s (largest was `encoding_rs` at 1.4 MB)
    Error: StrErr("current implementation cannot handle multiple crates with the same `lib` name:
    `habitat_core v0.0.0 (/home/jbauman/habitat/components/core)`
    ├── "base64" → "base64"
    ├── "base64" → "base64"
    └── ..")
    

    I know

    Crates are currently only handled on a per name basis. Two crates with the same name but different versions would be a problem.

    is listed as a known bug in https://github.com/est31/cargo-udeps/blob/master/README.md#known-bugs, but I couldn't find an issue that's tracking it. Since the project I work on won't be able to make use of udeps until this is resolved, having an issue I can subscribe to will help ensure that I can use it when that bug is fixed.

    bug 
    opened by baumanj 6
  • can't find crates

    can't find crates

    I'm getting this a lot since updating to cargo-udeps 0.1.2: repro:

    git clone https://github.com/rust-lang/cargo --depth=1
    cd cargo
    cargo udeps
    

    panics:

    thread 'main' panicked at 'could not find "crates-io 0.28.0 (path+file:///tmp/cargo/crates/crates-io)"', /home/matthias/.cargo/registry/src/github.com-1ecc6299db9ec823/cargo-udeps-0.1.2/src/main.rs:349:25
    stack backtrace:
       0: backtrace::backtrace::libunwind::trace
                 at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.35/src/backtrace/libunwind.rs:88
       1: backtrace::backtrace::trace_unsynchronized
                 at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.35/src/backtrace/mod.rs:66
       2: std::sys_common::backtrace::_print
                 at src/libstd/sys_common/backtrace.rs:47
       3: std::sys_common::backtrace::print
                 at src/libstd/sys_common/backtrace.rs:36
       4: std::panicking::default_hook::{{closure}}
                 at src/libstd/panicking.rs:200
       5: std::panicking::default_hook
                 at src/libstd/panicking.rs:214
       6: std::panicking::rust_panic_with_hook
                 at src/libstd/panicking.rs:477
       7: std::panicking::continue_panic_fmt
                 at src/libstd/panicking.rs:384
       8: std::panicking::begin_panic_fmt
                 at src/libstd/panicking.rs:339
       9: cargo_udeps::main::{{closure}}
      10: cargo_udeps::main
      11: std::rt::lang_start::{{closure}}
      12: std::rt::lang_start_internal::{{closure}}
                 at src/libstd/rt.rs:49
      13: std::panicking::try::do_call
                 at src/libstd/panicking.rs:296
      14: __rust_maybe_catch_panic
                 at src/libpanic_unwind/lib.rs:80
      15: std::panicking::try
                 at src/libstd/panicking.rs:275
      16: std::panic::catch_unwind
                 at src/libstd/panic.rs:394
      17: std::rt::lang_start_internal
                 at src/libstd/rt.rs:48
      18: main
      19: __libc_start_main
      20: _start
    note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
    
    opened by matthiaskrgr 6
  • Fails to build on Windows with Clang

    Fails to build on Windows with Clang

    Trying to install cargo-udeps on Windows fails with these linker errors:

    
       liblibgit2_sys-ba969b860dee402e.rlib(refdb_fs.o) : error LNK2001: unresolved external symbol close
              liblibgit2_sys-ba969b860dee402e.rlib(midx.o) : error LNK2001: unresolved external symbol close
              liblibgit2_sys-ba969b860dee402e.rlib(sortedcache.o) : error LNK2001: unresolved external symbol close
              libcurl_sys-0d9aaa1630205f23.rlib(file.o) : error LNK2001: unresolved external symbol close
              liblibgit2_sys-ba969b860dee402e.rlib(pack.o) : error LNK2001: unresolved external symbol close
              liblibgit2_sys-ba969b860dee402e.rlib(mwindow.o) : error LNK2001: unresolved external symbol close
              liblibgit2_sys-ba969b860dee402e.rlib(diff_file.o) : error LNK2001: unresolved external symbol close
              liblibgit2_sys-ba969b860dee402e.rlib(hashsig.o) : error LNK2001: unresolved external symbol close
              liblibgit2_sys-ba969b860dee402e.rlib(filter.o) : error LNK2001: unresolved external symbol close
              liblibgit2_sys-ba969b860dee402e.rlib(odb_loose.o) : error LNK2001: unresolved external symbol close
              liblibgit2_sys-ba969b860dee402e.rlib(commit_graph.o) : error LNK2001: unresolved external symbol close
              liblibgit2_sys-ba969b860dee402e.rlib(indexer.o) : error LNK2001: unresolved external symbol close
              liblibgit2_sys-ba969b860dee402e.rlib(path.o) : error LNK2001: unresolved external symbol close
              liblibgit2_sys-ba969b860dee402e.rlib(attr_file.o) : error LNK2001: unresolved external symbol close
              liblibgit2_sys-ba969b860dee402e.rlib(posix_w32.o) : error LNK2001: unresolved external symbol close
              liblibgit2_sys-ba969b860dee402e.rlib(filebuf.o) : error LNK2001: unresolved external symbol close
              liblibgit2_sys-ba969b860dee402e.rlib(blob.o) : error LNK2001: unresolved external symbol close
              liblibgit2_sys-ba969b860dee402e.rlib(diff_generate.o) : error LNK2001: unresolved external symbol close
              liblibgit2_sys-ba969b860dee402e.rlib(index.o) : error LNK2001: unresolved external symbol close
              liblibgit2_sys-ba969b860dee402e.rlib(futils.o) : error LNK2001: unresolved external symbol close
              liblibgit2_sys-ba969b860dee402e.rlib(repository.o) : error LNK2001: unresolved external symbol close
              liblibgit2_sys-ba969b860dee402e.rlib(odb.o) : error LNK2001: unresolved external symbol close
              liblibgit2_sys-ba969b860dee402e.rlib(checkout.o) : error LNK2001: unresolved external symbol close
              liblibgit2_sys-ba969b860dee402e.rlib(worktree.o) : error LNK2001: unresolved external symbol close
              liblibgit2_sys-ba969b860dee402e.rlib(futils.o) : error LNK2019: unresolved external symbol umask referenced in function git_futils_mktmp
              liblibgit2_sys-ba969b860dee402e.rlib(posix.o) : error LNK2019: unresolved external symbol read referenced in function p_read
              libcurl_sys-0d9aaa1630205f23.rlib(warnless.o) : error LNK2001: unresolved external symbol read
              liblibgit2_sys-ba969b860dee402e.rlib(posix.o) : error LNK2019: unresolved external symbol write referenced in function p_write
              libcurl_sys-0d9aaa1630205f23.rlib(warnless.o) : error LNK2001: unresolved external symbol write
              libcurl_sys-0d9aaa1630205f23.rlib(vauth.o) : error LNK2001: unresolved external symbol strdup
              libcurl_sys-0d9aaa1630205f23.rlib(rename.o) : error LNK2001: unresolved external symbol strdup
              libcurl_sys-0d9aaa1630205f23.rlib(digest_sspi.o) : error LNK2001: unresolved external symbol strdup
              libcurl_sys-0d9aaa1630205f23.rlib(socks_sspi.o) : error LNK2001: unresolved external symbol strdup
              libcurl_sys-0d9aaa1630205f23.rlib(schannel_verify.o) : error LNK2001: unresolved external symbol strdup
              liblibgit2_sys-ba969b860dee402e.rlib(stdalloc.o) : error LNK2001: unresolved external symbol strdup
              libcurl_sys-0d9aaa1630205f23.rlib(easy.o) : error LNK2001: unresolved external symbol strdup
              libcurl_sys-0d9aaa1630205f23.rlib(schannel.o) : error LNK2001: unresolved external symbol strdup
              libcurl_sys-0d9aaa1630205f23.rlib(curl_sspi.o) : error LNK2001: unresolved external symbol strdup
              libcurl_sys-0d9aaa1630205f23.rlib(altsvc.o) : error LNK2019: unresolved external symbol unlink referenced in function Curl_altsvc_save
              libcurl_sys-0d9aaa1630205f23.rlib(hsts.o) : error LNK2001: unresolved external symbol unlink
              libcurl_sys-0d9aaa1630205f23.rlib(cookie.o) : error LNK2001: unresolved external symbol unlink
              C:\Users\aminy\AppData\Local\Temp\cargo-installxKwFuC\release\deps\cargo_udeps-06db0f18527d4785.exe : fatal error LNK1120: 6 unresolved externals
    
    
    opened by aminya 5
  • False positives from derive macro

    False positives from derive macro

    I'm running cargo udeps as this:

    % cargo udeps --workspace --all-targets --backend save-analysis --show-unused-transitive
    

    and getting a whole bunch of false positives, most of which are coming from either derive macro or macro in general.

    It would be great to be able to pass something --no-proc-macro to automagically exclude derive macros from the output. It should be able to tell if something is a derive macro somewhere around cargo output.

    opened by pacak 5
  • This crate does not work with the new workspace dependencies

    This crate does not work with the new workspace dependencies

    The new workspace deps feature is explained here: https://betterprogramming.pub/workspace-inheritance-in-rust-65d0bb8f9424

    Reproduction path:

    1. Add random dependencies to your root Cargo.toml
    2. Run this library
    3. 'All deps seem to be used' is shown, although the deps are not used.
    opened by Jasperav 8
  • failed to download wasm-bindgen-futures

    failed to download wasm-bindgen-futures

    Executing cargo +nightly udeps in a workspace return this error

    error: failed to download `wasm-bindgen-futures v0.4.33`
    
    Caused by:
      unable to get packages from source
    
    Caused by:
      failed to unpack package `wasm-bindgen-futures v0.4.33`
    
    Caused by:
      failed to unpack entry at `wasm-bindgen-futures-0.4.33/LICENSE-APACHE`
    
    Caused by:
      failed to unpack `/home/loris/.cargo/registry/src/github.com-1ecc6299db9ec823/wasm-bindgen-futures-0.4.33/LICENSE-APACHE`
    
    Caused by:
      failed to unpack `wasm-bindgen-futures-0.4.33/LICENSE-APACHE` into `/home/loris/.cargo/registry/src/github.com-1ecc6299db9ec823/wasm-bindgen-futures-0.4.33/LICENSE-APACHE`
    
    Caused by:
      unexpected end of file
    
    opened by lorislibralato 0
  • Minor (cosmetic) - could `Loading save analysis` messages be suppressed?

    Minor (cosmetic) - could `Loading save analysis` messages be suppressed?

    Those are definitely useful as verbose/debug info but most of the time, why would the user care? Could they be hidden behind a verbose flag or even easier, and env var? (e.g. CARGO_UDEPS_VERBOSE)

    Asking because the typical use case is...

    $ cargo +nightly udeps
    
    <2 pages of 'info: Loading save analysis from ...'>
    All deps seem to have been used.
    

    (apologies in advance if I'm missing something obvious here)

    opened by aldanor 2
  • Automatically select nightly?

    Automatically select nightly?

    Would it be possible for cargo-udeps to detect that it is not being run on nightly, and re-run itself with nightly, to avoid the user needing to remember to +nightly it? cargo-expand does this, with this code.

    opened by adamspofford-dfinity 0
Releases(v0.1.35)
Owner
FLOSS software. Past contributions include @minetest, @rust-lang, F-Droid.
null
Detects usage of unsafe Rust in a Rust crate and its dependencies.

cargo-geiger ☢️ A program that lists statistics related to the usage of unsafe Rust code in a Rust crate and all its dependencies. This cargo plugin w

Rust Secure Code Working Group 1.1k Dec 26, 2022
Create ctags/etags for a cargo project

rusty-tags A command line tool that creates tags - for source code navigation by using ctags - for a cargo project, all of its direct and indirect dep

Daniel Trstenjak 367 Dec 21, 2022
Bundle Cargo crates for use with macOS/iOS in Xcode

cargo-cocoapods - Build Rust code for Xcode integration Installing cargo install cargo-cocoapods You'll also need to install all the toolchains you i

Brendan Molloy 14 Dec 29, 2022
Cargo command to create the README.md from your crate's documentation

Cargo rdme Cargo command to create your README from your crate’s documentation. Installation You can install cargo rdme with cargo by running cargo in

Diogo Sousa 42 Dec 24, 2022
allows you to run multiple cargo commands in a row

Cargo Do Allows you to put multiple cargo commands on one line, e.g. $ cargo do clean, update, build Installation cargo install cargo-do From Source

Paul Woolcock 20 Sep 11, 2022
cargo extension that can generate ebuilds using the in-tree eclasses

cargo-ebuild cargo ebuild is a Cargo subcommand that generates an ebuild recipe that uses cargo.eclass to build a Cargo based project for Gentoo Insta

Doug Goldstein 79 Dec 12, 2022
cargo extension that can generate BitBake recipes utilizing the classes from meta-rust

cargo-bitbake cargo bitbake is a Cargo subcommand that generates a BitBake recipe that uses meta-rust to build a Cargo based project for Yocto Install

null 60 Oct 28, 2022
Detect and remove unused dependencies from Cargo.toml

Cargo Shear ✂️ ?? Detect and remove unused dependencies from Cargo.toml in Rust projects. Installation cargo binstall cargo-shear # OR cargo install c

Boshen 49 Jul 25, 2024
Find potential unused enabled feature flags and prune them.

Potential unused, enabled feature flag finder and pruner. This cargo tool allows you to find and prune enabled, but, potentially unused feature flags

Timon 118 Jun 29, 2023
Automated license checking for rust. cargo lichking is a Cargo subcommand that checks licensing information for dependencies.

cargo-lichking Automated license checking for rust. cargo lichking is a Cargo subcommand that checks licensing information for dependencies. Liches ar

Nemo157 120 Dec 19, 2022
Cargo subcommand for running cargo without dev-dependencies.

cargo-no-dev-deps Cargo subcommand for running cargo without dev-dependencies. This is an extraction of the --no-dev-deps flag of cargo-hack to be use

Taiki Endo 5 Jan 12, 2023
crates is an extension aims to help people to manage their dependencies for rust (crates.io & TOML).

crates Hello Rust & VSCode lovers, This is crates, an extension for crates.io dependencies. Aims helping developers to manage dependencies while using

Seray Uzgur 164 Jan 4, 2023
Extract documentation for the feature flags from comments in Cargo.toml

Document your crate's feature flags This crate provides a macro that extracts documentation comments from Cargo.toml To use this crate, add #![doc = d

Slint 83 Dec 15, 2022
Serde definition of Cargo.toml structure

Deserialize Cargo.toml This is a definition of fields in Cargo.toml files for serde. It allows reading of Cargo.toml data, and serializing it using TO

null 11 Dec 20, 2023
Show unused code from multi-crate Rust projects

Warnalyzer Remove unused code from multi-crate Rust projects. The dead_code lint family of rustc is limited to one crate only and thus can't tell whet

null 75 Dec 27, 2022
fd is a program to find entries in your filesystem. It is a simple, fast and user-friendly alternative to find

fd is a program to find entries in your filesystem. It is a simple, fast and user-friendly alternative to find. While it does not aim to support all of find's powerful functionality, it provides sensible (opinionated) defaults for a majority of use cases.

David Peter 25.9k Jan 9, 2023
fas stand for Find all stuff and it's a go app that simplify the find command and allow you to easily search everything you nedd

fas fas stands for Find all stuff and it's a rust app that simplify the find command and allow you to easily search everything you need. Note: current

M4jrT0m 1 Dec 24, 2021
A CLI tool that allow you to create a temporary new rust project using cargo with already installed dependencies

cargo-temp A CLI tool that allow you to create a new rust project in a temporary directory with already installed dependencies. Install Requires Rust

Yohan Boogaert 61 Oct 31, 2022
Audit Cargo.lock files for dependencies with security vulnerabilities

RustSec Crates ?? ??️ ?? The RustSec Advisory Database is a repository of security advisories filed against Rust crates published via crates.io. The a

RustSec 1.2k Dec 30, 2022
Audit Cargo.lock files for dependencies with security vulnerabilities

RustSec Crates ?? ??️ ?? The RustSec Advisory Database is a repository of security advisories filed against Rust crates published via crates.io. The a

RustSec 1.2k Jan 5, 2023