{"id":13478625,"url":"https://github.com/geiger-rs/cargo-geiger","last_synced_at":"2025-05-14T13:06:16.818Z","repository":{"id":36982469,"uuid":"138089001","full_name":"geiger-rs/cargo-geiger","owner":"geiger-rs","description":"Detects usage of unsafe Rust in a Rust crate and its dependencies.","archived":false,"fork":false,"pushed_at":"2025-04-28T03:01:00.000Z","size":1824,"stargazers_count":1473,"open_issues_count":48,"forks_count":71,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-05-14T09:18:38.841Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://crates.io/crates/cargo-geiger","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/geiger-rs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-06-20T21:43:55.000Z","updated_at":"2025-05-13T20:14:43.000Z","dependencies_parsed_at":"2023-02-15T04:16:18.495Z","dependency_job_id":"c9e6c657-d037-4f1f-865d-0cd840a0c1f3","html_url":"https://github.com/geiger-rs/cargo-geiger","commit_stats":{"total_commits":710,"total_committers":38,"mean_commits":18.68421052631579,"dds":0.6295774647887324,"last_synced_commit":"e2ddd1615a3571ce8cdaecc6dd8745da9207ea73"},"previous_names":["geiger-rs/cargo-geiger","rust-secure-code/cargo-geiger"],"tags_count":50,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geiger-rs%2Fcargo-geiger","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geiger-rs%2Fcargo-geiger/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geiger-rs%2Fcargo-geiger/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geiger-rs%2Fcargo-geiger/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/geiger-rs","download_url":"https://codeload.github.com/geiger-rs/cargo-geiger/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254149953,"owners_count":22022851,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T16:01:59.541Z","updated_at":"2025-05-14T13:06:16.790Z","avatar_url":"https://github.com/geiger-rs.png","language":"Rust","funding_links":[],"categories":["Rust","Development tools","Programming Languages","Dependency \u0026 Supply Chain Security"],"sub_categories":["Web Servers","Workflow Automation"],"readme":"cargo-geiger ☢️ \n===============\n\n[![CI](https://github.com/geiger-rs/cargo-geiger/actions/workflows/ci.yml/badge.svg)](https://github.com/geiger-rs/cargo-geiger/actions/workflows/ci.yml)\n[![unsafe forbidden](https://img.shields.io/badge/unsafe-forbidden-success.svg)](https://github.com/rust-secure-code/safety-dance/)\n[![crates.io](https://img.shields.io/crates/v/cargo-geiger.svg)](https://crates.io/crates/cargo-geiger)\n[![Crates.io](https://img.shields.io/crates/d/cargo-geiger?label=cargo%20installs)](https://crates.io/crates/cargo-geiger)\n\nA tool that lists statistics related to the usage of unsafe Rust code in a Rust\ncrate and all its dependencies.\n\nThis cargo plugin was originally based on the code from two other projects:\n* \u003chttps://github.com/icefoxen/cargo-osha\u003e and\n* \u003chttps://github.com/sfackler/cargo-tree\u003e\n\nInstallation\n------------\n\nTry to find and use a system-wide installed OpenSSL library:\n\n```bash\ncargo install --locked cargo-geiger\n```\n\nOr, build and statically link OpenSSL as part of the cargo-geiger executable:\n\n```bash\ncargo install --locked cargo-geiger --features vendored-openssl\n```\n\nAlternatively pre-built binary releases are available from [GitHub releases](https://github.com/geiger-rs/cargo-geiger/releases).\n\nUsage\n-----\n\n1. Navigate to the same directory as the `Cargo.toml` you want to analyze.\n2. `cargo geiger`\n\nIntended Use\n------------\n\nThis tool is not meant to advise directly whether the code ultimately is truly insecure or not.\n\nThe purpose of cargo-geiger is to provide statistical input to auditing e.g. with:\n\n- [cargo-crev](https://crates.io/crates/cargo-crev)\n- [safety-dance](https://github.com/rust-secure-code/safety-dance)\n\nThe use of unsafe is nuanced and necessary in some cases and any motivation to use it is outside the scope of cargo-geiger.\n\nIt is important that any reporting is handled with care:\n\n- [Reddit: The Stigma around Unsafe](https://www.reddit.com/r/rust/comments/y1u068/the_stigma_around_unsafe/)\n- [YouTube: Rust NYC: Jon Gjengset - Demystifying unsafe code](https://youtu.be/QAz-maaH0KM)\n- [Rust-lang: WG Unsafe Code Guidelines](https://github.com/rust-lang/unsafe-code-guidelines)\n\nOutput example\n--------------\n\n![Example output](https://user-images.githubusercontent.com/3704611/53132247-845f7080-356f-11e9-9c76-a9498d4a744b.png)\n\nKnown issues\n------------\n\n - See the [issue tracker](https://github.com/rust-secure-code/cargo-geiger/issues).\n\nLibraries\n---------\n\nCargo Geiger exposes three libraries:\n\n - `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.\n - `cargo-geiger-serde` - A library containing the serializable report types\n - `geiger` - A library containing a few decoupled [cargo] components used by [cargo-geiger]\n\nChangelog\n---------\n\nSee the [changelog].\n\n[cargo]: https://crates.io/crates/cargo\n[cargo-geiger]: https://crates.io/crates/cargo-geiger\n[changelog]: https://github.com/rust-secure-code/cargo-geiger/blob/master/CHANGELOG.md\n\nWhy the name?\n-------------\n\n\u003chttps://en.wikipedia.org/wiki/Geiger_counter\u003e\n\nUnsafe code, like ionizing radiation, is unavoidable in some situations and should be safely contained!\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeiger-rs%2Fcargo-geiger","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeiger-rs%2Fcargo-geiger","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeiger-rs%2Fcargo-geiger/lists"}