Cargo-Geiger

Hacker News Top 工具

摘要

cargo-geiger 是一个 Rust cargo 插件,用于列出 crate 及其依赖中不安全代码使用的统计信息,为审计提供输入。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/06/20 17:16

geiger-rs/cargo-geiger

来源:https://github.com/geiger-rs/cargo-geiger cargo-geiger ☢️

CI (https://github.com/geiger-rs/cargo-geiger/actions/workflows/ci.yml) unsafe forbidden (https://github.com/rust-secure-code/safety-dance/) crates.io (https://crates.io/crates/cargo-geiger) Crates.io (https://crates.io/crates/cargo-geiger)

一个列出 Rust crate 及其所有依赖中 unsafe Rust 代码使用统计信息的工具。

这个 cargo 插件最初基于另外两个项目的代码:* 和 *

安装

尝试查找并使用系统范围内安装的 OpenSSL 库:

cargo install --locked cargo-geiger

或者,构建并将 OpenSSL 静态链接到 cargo-geiger 可执行文件中:

cargo install --locked cargo-geiger --features vendored-openssl

或者,可以从 GitHub releases 获取预构建的二进制发布版本 (https://github.com/geiger-rs/cargo-geiger/releases)。

用法

  1. 进入包含你想要分析的 Cargo.toml 的目录。
  2. cargo geiger

预期用途

此工具并非直接建议代码最终是否真正不安全。cargo-geiger 的目的是为审计提供统计输入,例如配合:

  • cargo-crev (https://crates.io/crates/cargo-crev)
  • safety-dance (https://github.com/rust-secure-code/safety-dance)

unsafe 的使用在某些情况下是微妙且必要的,使用它的任何动机都不在 cargo-geiger 的范围内。任何报告都需谨慎处理,这一点很重要:

  • Reddit: The Stigma around Unsafe (https://www.reddit.com/r/rust/comments/y1u068/the_stigma_around_unsafe/)
  • YouTube: Rust NYC: Jon Gjengset - Demystifying unsafe code (https://youtu.be/QAz-maaH0KM)
  • Rust-lang: WG Unsafe Code Guidelines (https://github.com/rust-lang/unsafe-code-guidelines)

输出示例

示例输出

已知问题

  • 参见问题跟踪器 (https://github.com/rust-secure-code/cargo-geiger/issues)。

Cargo Geiger 暴露了三个库:

  • cargo-geiger - 未版本化且高度不稳定的库,暴露了 cargo-geiger 二进制的内部实现。因此,该库中包含的任何函数都可能发生变化。
  • cargo-geiger-serde - 包含可序列化报告类型的库
  • geiger - 包含一些由 cargo-geiger 使用的解耦 cargo 组件的库

更新日志

参见 changelog

为什么叫这个名字?

不安全代码,就像电离辐射一样,在某些情况下是不可避免的,并且应该被安全地封装!

相似文章

crates.io: 开发更新

Lobsters Hottest

最新的 crates.io 开发更新引入了用于审计依赖项的源代码查看器,开始通过本地用户名将账户与 GitHub 解耦,并为被 RustSec 标记为无人维护的 crate 添加了醒目的警告。

Cargo 的愿景

Lobsters Hottest

一篇博客文章,提出了改进 Cargo 的愿景,涵盖依赖管理、构建性能、适应性和维护等工作流程,并邀请社区提供意见。

使用 Cackle 提高 Rust 供应链攻击难度(2023)

Lobsters Hottest

David Lattimore 介绍了 Cackle,这是一个通过使用访问控制列表(ACL)限制依赖项行为来帮助防止 Rust 供应链攻击的工具,从而降低通过第三方 crate 引入恶意代码的风险。