1 个不稳定版本
使用旧的Rust 2015
0.1.0 | 2017年1月20日 |
---|
#345 在 #check
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