8 个版本
0.5.1 | 2021年3月4日 |
---|---|
0.5.0 | 2020年5月18日 |
0.4.0 | 2020年4月29日 |
0.3.2 | 2020年4月17日 |
0.1.1 | 2020年3月26日 |
#342 在 Cargo 插件 中
每月 36 次下载
43KB
782 行
Cargo dephell
Cargo dephell 是一个分析 Rust 包或 Rust 工作区导入的第三方依赖的工具。它使用 guppy 解析依赖项,使用 geiger 查找不安全代码,使用 loc 计算代码行数。Cargo dephell 强烈倾向于 libra 代码库(在我们有工作区时,我们不会在 workspace 中列出不包含在内的内部包,我们对依赖项的 Rust 版本也不是很关心,等等。)
用法
安装
cargo install --git https://github.com/mimoo/cargo-dephell
确保您已经构建了您的包或工作区。
只需在相关的 Cargo.toml
上运行程序,并将结果输出到 HTML 文件
cargo run -- --manifest-path ./Cargo.toml -o analysis_results.html
请注意,您可能需要一个个人访问令牌来查询 Github API。您可以通过以下步骤轻松获取一个:
转到您的 github 设置
转到 开发者设置
转到 个人访问令牌 页面,然后点击 生成新令牌 按钮
一旦生成,只需
- 给它一个名字
- 不要勾选任何框
- 生成令牌
有了它后,将其作为参数传递
cargo run -- --manifest-path ./Cargo.toml -o analysis_results.html --github-token <username>:<token>
例如
cargo run -- --manifest-path ./Cargo.toml -o analysis_results.html --github-token mimoo:3902jfoiewjf130fjeowijfw
限制
请记住,这是一种尽力而为的方式来评估第三方依赖,这是由于以下原因之一(我们在这里记录了这些原因)
- 依赖项导入的传递依赖项不是功能相关的,这至少是误导性的(这应该很快得到修复)。
- “代码行数”指标通常不准确,因为它包括包文件夹中的所有文件。
- “Rust 代码行数”指标通常不准确,因为它包括包文件夹中的所有 .rs 文件,并且对于每个文件,它包括每个功能、测试等。
- 如果导入了一个依赖的多个版本,计算结果将基于我们遇到的第一个依赖。这是误导性的,因为版本可能会改变仓库、代码行数、它们导入的依赖项等。
路线图
如果您想帮忙
- 检查给定仓库上的代码是否与在crates.io上上传的代码相同
- 添加一个
AUDIT.toml
文件来跟踪谁审核了哪个仓库的哪个SHA-1提交。 - 使用dot(和d3)显示依赖图。
- 添加过去12个月内提交者的数量
- 添加crates的审核(来自https://github.com/RustSec/cargo-audit/blob/master/src/auditor.rs#L4)
- 添加-sys/_sys crates的数量
依赖项
~44–60MB
~1M SLoC