1 个不稳定版本

使用旧的Rust 2015

0.1.0 2017年1月20日

#345#check

EPL-1.0 许可证

21KB
483

Harbor

Harbor通过在依赖中查找所有使用unsafe代码的用法来为Rust项目提供安全检查。为此,需要通过cargo解析依赖树,将代码解析为其AST,然后遍历。利用Rust出色的模式匹配能力,我们可以快速访问代码中所有可能使用unsafe的地方。

为什么

当来到Rust时,许多人被它的安全性承诺所吸引。我很好奇人们如何以及为什么通过unsafe逃生口绕过Rust的安全保证。虽然我认为我们不应该拒绝任何使用不安全的库,但了解确切的位置在哪里不安全,以便您可以对您可能使用的许多库做出明智的决定,这是很好的。

试试

注意:需要nightly构建

cargo install harbor && cargo harbor

输出(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公共许可证的1.0版本或(在您的选择下)任何后续版本进行分发。

依赖关系

~13MB
~333K SLoC