Skip to content
This repository has been archived by the owner on Apr 27, 2024. It is now read-only.
/ cargo-geiger Public archive
forked from geiger-rs/cargo-geiger

Detects usage of unsafe Rust in a Rust crate and its dependencies.

Notifications You must be signed in to change notification settings

anderejd/cargo-geiger

Β 
Β 

Repository files navigation

cargo-geiger ☒️

Build Status unsafe forbidden Code Coverage crates.io Crates.io

A program that lists statistics related to the usage of unsafe Rust code in a Rust crate and all its dependencies.

This cargo plugin were originally based on the code from two other projects: https://github.com/icefoxen/cargo-osha and https://github.com/sfackler/cargo-tree.

Installation

Try to find and use a system-wide installed OpenSSL library:

cargo install cargo-geiger

Or, build and statically link OpenSSL as part of the cargo-geiger executable:

cargo install cargo-geiger --features vendored-openssl

Usage

  1. Navigate to the same directory as the Cargo.toml you want to analyze.
  2. cargo geiger

Output example

Example output

Why even care about unsafe Rust usage?

When and why to use unsafe Rust is out of scope for this project; it is simply a tool that provides information to aid auditing and hopefully to guide dependency selection. It is, however, the opinion of the author of this project that libraries choosing to abstain from unsafe Rust usage when possible should be promoted.

This project is an attempt to create pressure against unnecessary usage of unsafe Rust in public Rust libraries.

Why the name?

https://en.wikipedia.org/wiki/Geiger_counter

Unsafe code, like ionizing radiation, is unavoidable in some situations and should be safely contained!

Known issues

  • Unsafe code inside macros is not detected. Needs macro expansion(?).
  • Unsafe code generated by build.rs is probably not detected.
  • More on the GitHub issue tracker.

Roadmap

  • There should be no false negatives. All unsafe code should be identified. This is probably too ambitious, but scanning for #![forbid(unsafe_code)] should be a reliable alternative (implemented since 0.6.0). Please see the changelog.
  • An optional whitelist file at the root crate level to specify crates that are trusted to use unsafe (should only have an effect when placed in the project's root).

Libraries

Cargo Geiger exposes three libraries:

  • cargo-geiger - Unversioned and highly unstable library exposing the internals of the cargo-geiger binary. As such, any function contained within this library may be subject to change.
  • cargo-geiger-serde - A library containing the serializable report types
  • geiger - A library containing a few decoupled cargo components used by cargo-geiger

Changelog

View the changelog here

Cargo Geiger Safety Report


Metric output format: x/y
    x = unsafe code used by the build
    y = total unsafe code found in the crate

Symbols: 
    πŸ”’  = No `unsafe` usage found, declares #![forbid(unsafe_code)]
    ❓  = No `unsafe` usage found, missing #![forbid(unsafe_code)]
    ☒️  = `unsafe` usage found

Functions  Expressions  Impls  Traits  Methods  Dependency

0/0        0/0          0/0    0/0     0/0      πŸ”’  cargo-geiger 0.11.1
15/18      432/439      3/3    0/0     11/11    ☒️  β”œβ”€β”€ anyhow 1.0.40
0/26       0/623        0/6    0/0     0/5      ❓  β”‚   └── backtrace 0.3.56
0/0        0/23         0/0    0/0     0/0      ❓  β”‚       β”œβ”€β”€ addr2line 0.14.1
0/0        0/51         0/2    0/0     0/0      ❓  β”‚       β”‚   β”œβ”€β”€ gimli 0.23.0
0/0        37/42        1/1    0/0     0/0      ☒️  β”‚       β”‚   β”‚   └── indexmap 1.6.2
2/2        1006/1098    16/19  0/0     35/39    ☒️  β”‚       β”‚   β”‚       β”œβ”€β”€ hashbrown 0.9.1
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚       β”‚   β”‚       β”‚   └── serde 1.0.125
0/0        0/0          0/0    0/0     0/0      ❓  β”‚       β”‚   β”‚       β”‚       └── serde_derive 1.0.125
0/0        0/0          0/0    0/0     0/0      ❓  β”‚       β”‚   β”‚       β”‚           β”œβ”€β”€ proc-macro2 1.0.24
0/0        0/0          0/0    0/0     0/0      πŸ”’  β”‚       β”‚   β”‚       β”‚           β”‚   └── unicode-xid 0.2.1
0/0        0/0          0/0    0/0     0/0      ❓  β”‚       β”‚   β”‚       β”‚           β”œβ”€β”€ quote 1.0.9
0/0        0/0          0/0    0/0     0/0      ❓  β”‚       β”‚   β”‚       β”‚           β”‚   └── proc-macro2 1.0.24
0/0        45/45        3/3    0/0     2/2      ☒️  β”‚       β”‚   β”‚       β”‚           └── syn 1.0.67
0/0        0/0          0/0    0/0     0/0      ❓  β”‚       β”‚   β”‚       β”‚               β”œβ”€β”€ proc-macro2 1.0.24
0/0        0/0          0/0    0/0     0/0      ❓  β”‚       β”‚   β”‚       β”‚               β”œβ”€β”€ quote 1.0.9
0/0        0/0          0/0    0/0     0/0      πŸ”’  β”‚       β”‚   β”‚       β”‚               └── unicode-xid 0.2.1
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚       β”‚   β”‚       └── serde 1.0.125
0/0        0/0          0/0    0/0     0/0      ❓  β”‚       β”‚   β”œβ”€β”€ rustc-demangle 0.1.18
1/1        392/392      7/7    1/1     13/13    ☒️  β”‚       β”‚   └── smallvec 1.6.1
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚       β”‚       └── serde 1.0.125
0/0        0/0          0/0    0/0     0/0      ❓  β”‚       β”œβ”€β”€ cfg-if 1.0.0
0/19       10/311       0/0    0/0     5/27     ☒️  β”‚       β”œβ”€β”€ libc 0.2.92
0/0        0/0          0/0    0/0     0/0      πŸ”’  β”‚       β”œβ”€β”€ miniz_oxide 0.4.4
0/0        0/0          0/0    0/0     0/0      πŸ”’  β”‚       β”‚   └── adler 1.0.2
0/0        0/21         0/0    0/1     0/0      ❓  β”‚       β”œβ”€β”€ object 0.23.0
5/6        108/156      0/0    0/0     0/0      ☒️  β”‚       β”‚   β”œβ”€β”€ crc32fast 1.2.1
0/0        0/0          0/0    0/0     0/0      ❓  β”‚       β”‚   β”‚   └── cfg-if 1.0.0
4/4        129/129      2/2    0/0     2/2      ☒️  β”‚       β”‚   β”œβ”€β”€ flate2 1.0.20
0/0        0/0          0/0    0/0     0/0      ❓  β”‚       β”‚   β”‚   β”œβ”€β”€ cfg-if 1.0.0
5/6        108/156      0/0    0/0     0/0      ☒️  β”‚       β”‚   β”‚   β”œβ”€β”€ crc32fast 1.2.1
0/19       10/311       0/0    0/0     5/27     ☒️  β”‚       β”‚   β”‚   β”œβ”€β”€ libc 0.2.92
0/0        0/0          0/0    0/0     0/0      ❓  β”‚       β”‚   β”‚   β”œβ”€β”€ libz-sys 1.1.2
0/19       10/311       0/0    0/0     5/27     ☒️  β”‚       β”‚   β”‚   β”‚   └── libc 0.2.92
0/0        0/0          0/0    0/0     0/0      πŸ”’  β”‚       β”‚   β”‚   └── miniz_oxide 0.4.4
0/0        37/42        1/1    0/0     0/0      ☒️  β”‚       β”‚   └── indexmap 1.6.2
0/0        0/0          0/0    0/0     0/0      ❓  β”‚       β”œβ”€β”€ rustc-demangle 0.1.18
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚       └── serde 1.0.125
4/4        341/347      0/0    0/0     3/3      ☒️  β”œβ”€β”€ cargo 0.52.0
15/18      432/439      3/3    0/0     11/11    ☒️  β”‚   β”œβ”€β”€ anyhow 1.0.40
2/2        45/45        0/0    0/0     0/0      ☒️  β”‚   β”œβ”€β”€ atty 0.2.14
0/19       10/311       0/0    0/0     5/27     ☒️  β”‚   β”‚   └── libc 0.2.92
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”œβ”€β”€ bytesize 1.0.1
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚   β”‚   └── serde 1.0.125
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”œβ”€β”€ cargo-platform 0.1.1
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚   β”‚   └── serde 1.0.125
0/0        1/1          0/0    0/0     0/0      ☒️  β”‚   β”œβ”€β”€ clap 2.33.3
0/0        23/23        0/0    0/0     0/0      ☒️  β”‚   β”‚   β”œβ”€β”€ ansi_term 0.11.0
2/2        45/45        0/0    0/0     0/0      ☒️  β”‚   β”‚   β”œβ”€β”€ atty 0.2.14
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   β”œβ”€β”€ bitflags 1.2.1
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   β”œβ”€β”€ strsim 0.8.0
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   β”œβ”€β”€ textwrap 0.11.0
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   β”‚   └── unicode-width 0.1.8
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   β”œβ”€β”€ unicode-width 0.1.8
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   └── vec_map 0.8.2
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚   β”‚       └── serde 1.0.125
0/0        606/606      12/12  4/4     12/12    ☒️  β”‚   β”œβ”€β”€ core-foundation 0.9.1
0/0        3/3          0/0    0/0     2/2      ☒️  β”‚   β”‚   β”œβ”€β”€ core-foundation-sys 0.8.2
0/19       10/311       0/0    0/0     5/27     ☒️  β”‚   β”‚   └── libc 0.2.92
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”œβ”€β”€ crates-io 0.33.0
15/18      432/439      3/3    0/0     11/11    ☒️  β”‚   β”‚   β”œβ”€β”€ anyhow 1.0.40
4/4        875/876      5/5    0/0     2/2      ☒️  β”‚   β”‚   β”œβ”€β”€ curl 0.4.35
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   β”‚   β”œβ”€β”€ curl-sys 0.4.41+curl-7.75.0
0/19       10/311       0/0    0/0     5/27     ☒️  β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ libc 0.2.92
0/0        0/1          0/0    0/0     0/0      ❓  β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ libnghttp2-sys 0.1.6+1.43.0
0/19       10/311       0/0    0/0     5/27     ☒️  β”‚   β”‚   β”‚   β”‚   β”‚   └── libc 0.2.92
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   β”‚   β”‚   └── libz-sys 1.1.2
0/19       10/311       0/0    0/0     5/27     ☒️  β”‚   β”‚   β”‚   β”œβ”€β”€ libc 0.2.92
0/0        644/1122     0/0    0/0     5/9      ☒️  β”‚   β”‚   β”‚   └── socket2 0.3.19
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   β”‚       β”œβ”€β”€ cfg-if 1.0.0
0/19       10/311       0/0    0/0     5/27     ☒️  β”‚   β”‚   β”‚       └── libc 0.2.92
0/0        3/3          0/0    0/0     0/0      ☒️  β”‚   β”‚   β”œβ”€β”€ percent-encoding 2.1.0
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚   β”‚   β”œβ”€β”€ serde 1.0.125
0/0        6/6          0/0    0/0     0/0      ☒️  β”‚   β”‚   β”œβ”€β”€ serde_json 1.0.64
0/0        37/42        1/1    0/0     0/0      ☒️  β”‚   β”‚   β”‚   β”œβ”€β”€ indexmap 1.6.2
0/0        1/1          0/0    0/0     0/0      ☒️  β”‚   β”‚   β”‚   β”œβ”€β”€ itoa 0.4.7
8/12       674/921      0/0    0/0     2/2      ☒️  β”‚   β”‚   β”‚   β”œβ”€β”€ ryu 1.0.5
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚   β”‚   β”‚   └── serde 1.0.125
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   └── url 2.2.1
0/0        2/2          0/0    0/0     0/0      ☒️  β”‚   β”‚       β”œβ”€β”€ form_urlencoded 1.0.1
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚       β”‚   β”œβ”€β”€ matches 0.1.8
0/0        3/3          0/0    0/0     0/0      ☒️  β”‚   β”‚       β”‚   └── percent-encoding 2.1.0
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚       β”œβ”€β”€ idna 0.2.2
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚       β”‚   β”œβ”€β”€ matches 0.1.8
0/0        0/0          0/0    0/0     0/0      πŸ”’  β”‚   β”‚       β”‚   β”œβ”€β”€ unicode-bidi 0.3.4
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚       β”‚   β”‚   β”œβ”€β”€ matches 0.1.8
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚   β”‚       β”‚   β”‚   └── serde 1.0.125
0/0        20/20        0/0    0/0     0/0      ☒️  β”‚   β”‚       β”‚   └── unicode-normalization 0.1.17
0/0        0/0          0/0    0/0     0/0      πŸ”’  β”‚   β”‚       β”‚       └── tinyvec 1.1.1
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚   β”‚       β”‚           β”œβ”€β”€ serde 1.0.125
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚       β”‚           └── tinyvec_macros 0.1.0
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚       β”œβ”€β”€ matches 0.1.8
0/0        3/3          0/0    0/0     0/0      ☒️  β”‚   β”‚       β”œβ”€β”€ percent-encoding 2.1.0
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚   β”‚       └── serde 1.0.125
4/4        79/79        14/14  0/0     2/2      ☒️  β”‚   β”œβ”€β”€ crossbeam-utils 0.8.3
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   β”œβ”€β”€ cfg-if 1.0.0
0/0        7/7          1/1    0/0     0/0      ☒️  β”‚   β”‚   └── lazy_static 1.4.0
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”œβ”€β”€ crypto-hash 0.3.4
0/0        23/23        0/0    0/0     0/0      ☒️  β”‚   β”‚   β”œβ”€β”€ commoncrypto 0.2.0
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   β”‚   └── commoncrypto-sys 0.2.0
0/19       10/311       0/0    0/0     5/27     ☒️  β”‚   β”‚   β”‚       └── libc 0.2.92
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   └── hex 0.3.2
4/4        875/876      5/5    0/0     2/2      ☒️  β”‚   β”œβ”€β”€ curl 0.4.35
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”œβ”€β”€ curl-sys 0.4.41+curl-7.75.0
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”œβ”€β”€ env_logger 0.8.3
2/2        45/45        0/0    0/0     0/0      ☒️  β”‚   β”‚   β”œβ”€β”€ atty 0.2.14
0/0        0/0          0/0    0/0     0/0      πŸ”’  β”‚   β”‚   β”œβ”€β”€ humantime 2.1.0
1/1        16/16        1/1    0/0     0/0      ☒️  β”‚   β”‚   β”œβ”€β”€ log 0.4.14
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   β”‚   β”œβ”€β”€ cfg-if 1.0.0
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚   β”‚   β”‚   └── serde 1.0.125
0/0        34/34        1/2    0/0     2/2      ☒️  β”‚   β”‚   β”œβ”€β”€ regex 1.4.5
19/19      678/678      0/0    0/0     22/22    ☒️  β”‚   β”‚   β”‚   β”œβ”€β”€ aho-corasick 0.7.15
26/27      1823/1896    0/0    0/0     0/0      ☒️  β”‚   β”‚   β”‚   β”‚   └── memchr 2.3.4
0/19       10/311       0/0    0/0     5/27     ☒️  β”‚   β”‚   β”‚   β”‚       └── libc 0.2.92
26/27      1823/1896    0/0    0/0     0/0      ☒️  β”‚   β”‚   β”‚   β”œβ”€β”€ memchr 2.3.4
0/0        0/0          0/0    0/0     0/0      πŸ”’  β”‚   β”‚   β”‚   └── regex-syntax 0.6.23
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   └── termcolor 1.1.2
0/0        35/78        0/0    0/0     0/0      ☒️  β”‚   β”œβ”€β”€ filetime 0.2.14
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   β”œβ”€β”€ cfg-if 1.0.0
0/19       10/311       0/0    0/0     5/27     ☒️  β”‚   β”‚   └── libc 0.2.92
4/4        129/129      2/2    0/0     2/2      ☒️  β”‚   β”œβ”€β”€ flate2 1.0.20
9/9        3745/3765    3/3    0/0     81/81    ☒️  β”‚   β”œβ”€β”€ git2 0.13.17
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   β”œβ”€β”€ bitflags 1.2.1
0/19       10/311       0/0    0/0     5/27     ☒️  β”‚   β”‚   β”œβ”€β”€ libc 0.2.92
0/0        18/18        0/0    0/0     0/0      ☒️  β”‚   β”‚   β”œβ”€β”€ libgit2-sys 0.12.18+1.1.0
0/19       10/311       0/0    0/0     5/27     ☒️  β”‚   β”‚   β”‚   β”œβ”€β”€ libc 0.2.92
2/2        6/6          0/0    0/0     0/0      ☒️  β”‚   β”‚   β”‚   β”œβ”€β”€ libssh2-sys 0.2.21
0/19       10/311       0/0    0/0     5/27     ☒️  β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ libc 0.2.92
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ libz-sys 1.1.2
42/42      149/149      0/0    0/0     0/0      ☒️  β”‚   β”‚   β”‚   β”‚   └── openssl-sys 0.9.61
0/19       10/311       0/0    0/0     5/27     ☒️  β”‚   β”‚   β”‚   β”‚       └── libc 0.2.92
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   β”‚   β”œβ”€β”€ libz-sys 1.1.2
42/42      149/149      0/0    0/0     0/0      ☒️  β”‚   β”‚   β”‚   └── openssl-sys 0.9.61
1/1        16/16        1/1    0/0     0/0      ☒️  β”‚   β”‚   β”œβ”€β”€ log 0.4.14
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   └── url 2.2.1
1/1        17/19        0/0    0/0     0/0      ☒️  β”‚   β”œβ”€β”€ git2-curl 0.14.1
4/4        875/876      5/5    0/0     2/2      ☒️  β”‚   β”‚   β”œβ”€β”€ curl 0.4.35
9/9        3745/3765    3/3    0/0     81/81    ☒️  β”‚   β”‚   β”œβ”€β”€ git2 0.13.17
1/1        16/16        1/1    0/0     0/0      ☒️  β”‚   β”‚   β”œβ”€β”€ log 0.4.14
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   └── url 2.2.1
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”œβ”€β”€ glob 0.3.0
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”œβ”€β”€ hex 0.4.3
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚   β”‚   └── serde 1.0.125
0/0        0/14         0/0    0/0     0/0      ❓  β”‚   β”œβ”€β”€ home 0.5.3
0/0        0/0          0/0    0/0     0/0      πŸ”’  β”‚   β”œβ”€β”€ humantime 2.1.0
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”œβ”€β”€ ignore 0.4.17
4/4        79/79        14/14  0/0     2/2      ☒️  β”‚   β”‚   β”œβ”€β”€ crossbeam-utils 0.8.3
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   β”œβ”€β”€ globset 0.4.6
19/19      678/678      0/0    0/0     22/22    ☒️  β”‚   β”‚   β”‚   β”œβ”€β”€ aho-corasick 0.7.15
8/8        377/377      0/0    0/0     0/0      ☒️  β”‚   β”‚   β”‚   β”œβ”€β”€ bstr 0.2.15
0/0        7/7          1/1    0/0     0/0      ☒️  β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ lazy_static 1.4.0
26/27      1823/1896    0/0    0/0     0/0      ☒️  β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ memchr 2.3.4
0/0        225/225      5/5    1/1     14/14    ☒️  β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ regex-automata 0.1.9
0/1        176/193      0/0    0/0     0/0      ☒️  β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ byteorder 1.4.3
0/0        0/0          0/0    0/0     0/0      πŸ”’  β”‚   β”‚   β”‚   β”‚   β”‚   └── regex-syntax 0.6.23
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚   β”‚   β”‚   β”‚   └── serde 1.0.125
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   β”‚   β”œβ”€β”€ fnv 1.0.7
1/1        16/16        1/1    0/0     0/0      ☒️  β”‚   β”‚   β”‚   β”œβ”€β”€ log 0.4.14
0/0        34/34        1/2    0/0     2/2      ☒️  β”‚   β”‚   β”‚   β”œβ”€β”€ regex 1.4.5
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚   β”‚   β”‚   └── serde 1.0.125
0/0        7/7          1/1    0/0     0/0      ☒️  β”‚   β”‚   β”œβ”€β”€ lazy_static 1.4.0
1/1        16/16        1/1    0/0     0/0      ☒️  β”‚   β”‚   β”œβ”€β”€ log 0.4.14
26/27      1823/1896    0/0    0/0     0/0      ☒️  β”‚   β”‚   β”œβ”€β”€ memchr 2.3.4
0/0        34/34        1/2    0/0     2/2      ☒️  β”‚   β”‚   β”œβ”€β”€ regex 1.4.5
0/0        3/3          0/0    0/0     0/0      ☒️  β”‚   β”‚   β”œβ”€β”€ same-file 1.0.6
0/0        109/109      1/1    0/0     4/4      ☒️  β”‚   β”‚   β”œβ”€β”€ thread_local 1.1.3
1/1        75/94        4/6    0/0     2/3      ☒️  β”‚   β”‚   β”‚   └── once_cell 1.7.2
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   └── walkdir 2.3.2
0/0        3/3          0/0    0/0     0/0      ☒️  β”‚   β”‚       └── same-file 1.0.6
1/1        122/122      2/2    0/0     4/4      ☒️  β”‚   β”œβ”€β”€ im-rc 15.0.0
0/0        100/100      0/0    0/0     9/9      ☒️  β”‚   β”‚   β”œβ”€β”€ bitmaps 2.1.0
0/0        0/0          0/0    0/0     0/0      πŸ”’  β”‚   β”‚   β”‚   └── typenum 1.13.0
0/0        22/22        0/0    0/0     0/0      ☒️  β”‚   β”‚   β”œβ”€β”€ rand_core 0.5.1
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚   β”‚   β”‚   └── serde 1.0.125
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   β”œβ”€β”€ rand_xoshiro 0.4.0
0/0        22/22        0/0    0/0     0/0      ☒️  β”‚   β”‚   β”‚   β”œβ”€β”€ rand_core 0.5.1
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚   β”‚   β”‚   └── serde 1.0.125
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚   β”‚   β”œβ”€β”€ serde 1.0.125
0/1        311/631      0/0    0/0     20/39    ☒️  β”‚   β”‚   β”œβ”€β”€ sized-chunks 0.6.4
0/0        100/100      0/0    0/0     9/9      ☒️  β”‚   β”‚   β”‚   β”œβ”€β”€ bitmaps 2.1.0
0/0        0/0          0/0    0/0     0/0      πŸ”’  β”‚   β”‚   β”‚   └── typenum 1.13.0
0/0        0/0          0/0    0/0     0/0      πŸ”’  β”‚   β”‚   └── typenum 1.13.0
0/0        188/282      0/2    0/0     4/6      ☒️  β”‚   β”œβ”€β”€ jobserver 0.1.21
0/19       10/311       0/0    0/0     5/27     ☒️  β”‚   β”‚   └── libc 0.2.92
0/0        7/7          1/1    0/0     0/0      ☒️  β”‚   β”œβ”€β”€ lazy_static 1.4.0
0/0        43/43        2/2    0/0     0/0      ☒️  β”‚   β”œβ”€β”€ lazycell 1.3.0
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚   β”‚   └── serde 1.0.125
0/19       10/311       0/0    0/0     5/27     ☒️  β”‚   β”œβ”€β”€ libc 0.2.92
0/0        18/18        0/0    0/0     0/0      ☒️  β”‚   β”œβ”€β”€ libgit2-sys 0.12.18+1.1.0
1/1        16/16        1/1    0/0     0/0      ☒️  β”‚   β”œβ”€β”€ log 0.4.14
26/27      1823/1896    0/0    0/0     0/0      ☒️  β”‚   β”œβ”€β”€ memchr 2.3.4
0/0        65/72        0/0    0/0     0/0      ☒️  β”‚   β”œβ”€β”€ num_cpus 1.13.0
0/19       10/311       0/0    0/0     5/27     ☒️  β”‚   β”‚   └── libc 0.2.92
0/0        6/6          0/0    0/0     0/0      ☒️  β”‚   β”œβ”€β”€ opener 0.4.1
30/30      5630/5630    33/33  3/3     16/16    ☒️  β”‚   β”œβ”€β”€ openssl 0.10.33
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   β”œβ”€β”€ bitflags 1.2.1
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   β”œβ”€β”€ cfg-if 1.0.0
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   β”œβ”€β”€ foreign-types 0.3.2
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   β”‚   └── foreign-types-shared 0.1.1
0/19       10/311       0/0    0/0     5/27     ☒️  β”‚   β”‚   β”œβ”€β”€ libc 0.2.92
1/1        75/94        4/6    0/0     2/3      ☒️  β”‚   β”‚   β”œβ”€β”€ once_cell 1.7.2
42/42      149/149      0/0    0/0     0/0      ☒️  β”‚   β”‚   └── openssl-sys 0.9.61
0/0        3/3          0/0    0/0     0/0      ☒️  β”‚   β”œβ”€β”€ percent-encoding 2.1.0
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”œβ”€β”€ rustc-workspace-hack 1.0.0
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”œβ”€β”€ rustfix 0.5.1
15/18      432/439      3/3    0/0     11/11    ☒️  β”‚   β”‚   β”œβ”€β”€ anyhow 1.0.40
1/1        16/16        1/1    0/0     0/0      ☒️  β”‚   β”‚   β”œβ”€β”€ log 0.4.14
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚   β”‚   β”œβ”€β”€ serde 1.0.125
0/0        6/6          0/0    0/0     0/0      ☒️  β”‚   β”‚   └── serde_json 1.0.64
0/0        3/3          0/0    0/0     0/0      ☒️  β”‚   β”œβ”€β”€ same-file 1.0.6
0/0        0/4          0/0    0/0     0/0      ❓  β”‚   β”œβ”€β”€ semver 0.10.0
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   β”œβ”€β”€ semver-parser 0.7.0
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚   β”‚   └── serde 1.0.125
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚   β”œβ”€β”€ serde 1.0.125
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”œβ”€β”€ serde_ignored 0.1.2
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚   β”‚   └── serde 1.0.125
0/0        6/6          0/0    0/0     0/0      ☒️  β”‚   β”œβ”€β”€ serde_json 1.0.64
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”œβ”€β”€ shell-escape 0.1.5
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”œβ”€β”€ strip-ansi-escapes 0.1.0
0/0        4/5          0/0    0/0     0/0      ☒️  β”‚   β”‚   └── vte 0.3.3
1/1        5/5          0/0    0/0     0/0      ☒️  β”‚   β”‚       └── utf8parse 0.1.1
2/2        52/52        0/0    0/0     0/0      ☒️  β”‚   β”œβ”€β”€ tar 0.4.33
0/0        35/78        0/0    0/0     0/0      ☒️  β”‚   β”‚   β”œβ”€β”€ filetime 0.2.14
0/19       10/311       0/0    0/0     5/27     ☒️  β”‚   β”‚   └── libc 0.2.92
0/0        36/82        0/0    0/0     0/0      ☒️  β”‚   β”œβ”€β”€ tempfile 3.2.0
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   β”œβ”€β”€ cfg-if 1.0.0
0/19       10/311       0/0    0/0     5/27     ☒️  β”‚   β”‚   β”œβ”€β”€ libc 0.2.92
0/0        20/20        0/0    0/0     0/0      ☒️  β”‚   β”‚   β”œβ”€β”€ rand 0.8.3
0/19       10/311       0/0    0/0     5/27     ☒️  β”‚   β”‚   β”‚   β”œβ”€β”€ libc 0.2.92
1/1        16/16        1/1    0/0     0/0      ☒️  β”‚   β”‚   β”‚   β”œβ”€β”€ log 0.4.14
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   β”‚   β”œβ”€β”€ rand_chacha 0.3.0
2/2        565/641      0/0    0/0     14/22    ☒️  β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ ppv-lite86 0.2.10
0/0        15/15        0/0    0/0     0/0      ☒️  β”‚   β”‚   β”‚   β”‚   └── rand_core 0.6.2
1/4        47/144       1/1    0/0     3/3      ☒️  β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ getrandom 0.2.2
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ cfg-if 1.0.0
0/19       10/311       0/0    0/0     5/27     ☒️  β”‚   β”‚   β”‚   β”‚       β”‚   └── libc 0.2.92
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚   β”‚   β”‚   β”‚       └── serde 1.0.125
0/0        15/15        0/0    0/0     0/0      ☒️  β”‚   β”‚   β”‚   β”œβ”€β”€ rand_core 0.6.2
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚   β”‚   β”‚   └── serde 1.0.125
0/0        0/79         0/0    0/0     0/0      ❓  β”‚   β”‚   └── remove_dir_all 0.5.3
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”œβ”€β”€ termcolor 1.1.2
0/0        0/0          0/0    0/0     0/0      πŸ”’  β”‚   β”œβ”€β”€ toml 0.5.8
0/0        37/42        1/1    0/0     0/0      ☒️  β”‚   β”‚   β”œβ”€β”€ indexmap 1.6.2
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚   β”‚   └── serde 1.0.125
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”œβ”€β”€ unicode-width 0.1.8
0/0        0/0          0/0    0/0     0/0      πŸ”’  β”‚   β”œβ”€β”€ unicode-xid 0.2.1
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”œβ”€β”€ url 2.2.1
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   └── walkdir 2.3.2
0/0        0/0          0/0    0/0     0/0      πŸ”’  β”œβ”€β”€ cargo-geiger-serde 0.2.0
0/0        0/4          0/0    0/0     0/0      ❓  β”‚   β”œβ”€β”€ semver 0.11.0
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   β”œβ”€β”€ semver-parser 0.10.2
2/2        57/57        0/0    0/0     2/2      ☒️  β”‚   β”‚   β”‚   └── pest 2.1.3
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚   β”‚   β”‚       β”œβ”€β”€ serde 1.0.125
0/0        6/6          0/0    0/0     0/0      ☒️  β”‚   β”‚   β”‚       β”œβ”€β”€ serde_json 1.0.64
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   β”‚       └── ucd-trie 0.1.3
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚   β”‚   └── serde 1.0.125
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚   β”œβ”€β”€ serde 1.0.125
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   └── url 2.2.1
0/0        0/0          0/0    0/0     0/0      ❓  β”œβ”€β”€ cargo-platform 0.1.1
0/0        0/0          0/0    0/0     0/0      ❓  β”œβ”€β”€ cargo_metadata 0.13.1
1/1        50/50        0/0    0/0     2/2      ☒️  β”‚   β”œβ”€β”€ camino 1.0.4
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚   β”‚   └── serde 1.0.125
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”œβ”€β”€ cargo-platform 0.1.1
0/0        0/4          0/0    0/0     0/0      ❓  β”‚   β”œβ”€β”€ semver 0.11.0
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”œβ”€β”€ semver-parser 0.10.2
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚   β”œβ”€β”€ serde 1.0.125
0/0        6/6          0/0    0/0     0/0      ☒️  β”‚   └── serde_json 1.0.64
0/0        13/13        0/0    0/0     0/0      ☒️  β”œβ”€β”€ colored 2.0.0
2/2        45/45        0/0    0/0     0/0      ☒️  β”‚   β”œβ”€β”€ atty 0.2.14
0/0        7/7          1/1    0/0     0/0      ☒️  β”‚   └── lazy_static 1.4.0
0/1        55/235       0/0    0/0     0/0      ☒️  β”œβ”€β”€ console 0.14.1
0/0        7/7          1/1    0/0     0/0      ☒️  β”‚   β”œβ”€β”€ lazy_static 1.4.0
0/19       10/311       0/0    0/0     5/27     ☒️  β”‚   β”œβ”€β”€ libc 0.2.92
0/0        34/34        1/2    0/0     2/2      ☒️  β”‚   β”œβ”€β”€ regex 1.4.5
0/0        5/12         0/0    0/0     0/0      ☒️  β”‚   β”œβ”€β”€ terminal_size 0.1.16
0/19       10/311       0/0    0/0     5/27     ☒️  β”‚   β”‚   └── libc 0.2.92
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   └── unicode-width 0.1.8
0/0        0/0          0/0    0/0     0/0      πŸ”’  β”œβ”€β”€ geiger 0.4.6
0/0        0/0          0/0    0/0     0/0      πŸ”’  β”‚   β”œβ”€β”€ cargo-geiger-serde 0.2.0
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”œβ”€β”€ proc-macro2 1.0.24
0/0        45/45        3/3    0/0     2/2      ☒️  β”‚   └── syn 1.0.67
0/0        0/0          0/0    0/0     0/0      ❓  β”œβ”€β”€ krates 0.7.0
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”œβ”€β”€ cargo_metadata 0.13.1
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”œβ”€β”€ cfg-expr 0.7.4
1/1        392/392      7/7    1/1     13/13    ☒️  β”‚   β”‚   └── smallvec 1.6.1
2/2        75/75        4/4    1/1     1/1      ☒️  β”‚   β”œβ”€β”€ petgraph 0.5.1
0/0        62/62        0/0    0/0     0/0      ☒️  β”‚   β”‚   β”œβ”€β”€ fixedbitset 0.2.0
0/0        37/42        1/1    0/0     0/0      ☒️  β”‚   β”‚   β”œβ”€β”€ indexmap 1.6.2
0/0        4/4          0/0    0/0     0/0      ☒️  β”‚   β”‚   β”œβ”€β”€ serde 1.0.125
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   β”‚   └── serde_derive 1.0.125
0/0        0/4          0/0    0/0     0/0      ❓  β”‚   └── semver 0.11.0
2/2        75/75        4/4    1/1     1/1      ☒️  β”œβ”€β”€ petgraph 0.5.1
0/0        0/0          0/0    0/0     0/0      πŸ”’  β”œβ”€β”€ pico-args 0.4.0
0/0        34/34        1/2    0/0     2/2      ☒️  β”œβ”€β”€ regex 1.4.5
0/0        4/4          0/0    0/0     0/0      ☒️  β”œβ”€β”€ serde 1.0.125
0/0        6/6          0/0    0/0     0/0      ☒️  β”œβ”€β”€ serde_json 1.0.64
0/0        0/0          0/0    0/0     0/0      ❓  β”œβ”€β”€ strum 0.20.0
0/0        0/0          0/0    0/0     0/0      ❓  β”‚   └── strum_macros 0.20.1
0/0        0/0          0/0    0/0     0/0      ❓  β”‚       β”œβ”€β”€ heck 0.3.2
0/0        0/0          0/0    0/0     0/0      ❓  β”‚       β”‚   └── unicode-segmentation 1.7.1
0/0        0/0          0/0    0/0     0/0      ❓  β”‚       β”œβ”€β”€ proc-macro2 1.0.24
0/0        0/0          0/0    0/0     0/0      ❓  β”‚       β”œβ”€β”€ quote 1.0.9
0/0        45/45        3/3    0/0     2/2      ☒️  β”‚       └── syn 1.0.67
0/0        0/0          0/0    0/0     0/0      ❓  β”œβ”€β”€ strum_macros 0.20.1
0/0        0/0          0/0    0/0     0/0      ❓  β”œβ”€β”€ url 2.2.1
0/0        0/0          0/0    0/0     0/0      ❓  └── walkdir 2.3.2

200/260    20550/23557  121/137 10/11   296/361

About

Detects usage of unsafe Rust in a Rust crate and its dependencies.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 99.8%
  • Dockerfile 0.2%