2 个版本

使用旧的 Rust 2015

0.1.1 2017年1月21日
0.1.0 2017年1月20日

90#安全

EPL-1.0 许可证

14KB
336 行(不包括注释)

cargo safety 插件

此包为 cargo 提供了一个子命令,通过查找依赖项中所有 unsafe 代码的使用来对 Rust 项目进行安全检查。为了可靠地进行此操作,依赖关系树由 cargo 解析,代码被解析成它的抽象语法树(AST),然后遍历。利用 Rust 令人惊叹的模式匹配功能,我们可以快速访问所有可以 unsafe 的代码位置。

为什么

当许多人来到 Rust 时,他们被其对安全性的承诺所吸引。我很好奇人们如何以及为什么绕过 Rust 的安全保证使用 unsafe 逃生门。虽然我认为我们不应该拒绝任何使用不安全性的库,但知道事物确实不安全的地方以便您可以就您可能使用的许多库做出明智的决定是很好的。

试一试

注意:需要 nightly 构建

cargo install cargo-safety && cargo safety

输出(json)

[
  {
    "lib_name": "gcc",
    "status": "failed",
    "offenses": [
      {
        "occurences": "\/Users\/alexkehayias\/.cargo\/registry\/src\/github.com-1ecc6299db9ec823\/gcc-0.3.40\/src\/registry.rs:73:1: 73:29\n`unsafe impl Sync for Repr {}`\n",
        "kind": "unsafe_impl"
      }
	]
  }
]

许可证

版权所有 © 2017 Alex Kehayias

根据 Eclipse Public License 1.0 版或(根据您的选择)任何较新版本的条款进行分发。

依赖项

~4.5MB
~100K SLoC