1 个不稳定版本
0.0.0 | 2023 年 10 月 17 日 |
---|
#3 在 #lift
33KB
448 行
注意! Lift 正在早期开发中,本文件中描述的许多或所有功能尚未实现...
用于托管、审计和镜像来自 cargo
的 crates.io
的 Crates。
使用方法:审计 Crates
Lift 将多个代码检查和审计工具整合为一个命令(cargo lift check
)
-
cargo fmt --check
(仅本地),检查代码格式的一致性。 -
cargo clippy
(仅本地),检查代码中的“异味”、简单错误和可维护性问题。 -
cargo geiger
(仅本地),检查代码中使用unsafe
关键字的用法。 -
cargo audit
,通过 RustSec 咨询数据库 检查与 Crates 或其依赖项相关的安全咨询。 -
cargo vet
或cargo crev
,通过分布式的人证代码审查检查与 Crates 或其依赖项相关的 失败 审计。
审计本地的 Cargo.toml
要审计包含 Cargo.toml
文件的本地 Crates 或 工作区,请运行
cargo lift check
要跳过审计 Cargo.toml
文件的非 Workspace 依赖项(例如,所有第三方代码),请运行
cargo lift check --relaxed
当命令退出时,Lift 将打印一个报告,标记任何失败的 Cargo.toml
(以及其依赖项,如果不使用 --relaxed
)检查。
用法:镜像 crates.io
Lift 可以下载并托管(“镜像”)在 crates.io
上托管的任何 Crate 的副本。
镜像 crates.io
上的每个 Crate
警告:虽然 Lift 默认不会下载
crates.io
上 每个 Crate 的 每个 版本,但它仍然会下载许多 Crate。此镜像操作可能会轻易耗尽您的网络带宽和磁盘空间!
要镜像整个 crates.io
索引,请运行
cargo lift mirror * --from crates.io
在此命令退出后,每个镜像的 Crate 都将在本地 Lift 存储库中可用。
如何选择镜像版本
对于每个 Crate,只保证镜像一个版本。在选择此版本时,Lift 将
- 优先选择通过
cargo lift check --relaxed
命令的版本。 - 优先选择未撤回的版本。
- 优先选择最新的(“最高”)版本。
Lift 将镜像一个 Crate 的额外版本,如果这些版本是满足另一个 Crate 的直接或间接(“传递”)依赖项所必需的。
默认情况下,Lift 会忽略任何无法通过 cargo lift check --relaxed
命令的 Crate,除非这些 Crate 是为了满足另一个 Crate 的传递依赖项而必需的。
从 crates.io
镜像一个 Crate
要镜像从 crates.io
的 特定 Crate 及其所有直接和间接依赖项,请运行
cargo lift mirror [email protected] --from crates.io
在此示例中,tokio
Crate 的 1.29.1
版本将从 crates.io
镜像,以及每个传递依赖项。
mirror
子命令接受通常在 Cargo-toml
中使用的 任何 版本字符串。例如,在上面的示例中,可以使用 *
代替 1.29.1
,使 Lift 自动选择版本。
许可和贡献通知
除非另有说明,否则本项目版权所有(C)2023 Brandon Sanders [[email protected]],并许可在 AGPL-3.0-only 下。
当向此存储库提交贡献时,您授予此存储库的版权所有者非独占的、全球性的、免版税的许可,以制作、使用、销售、提供销售、进口以及以其他方式运行、修改和传播您“贡献版本”的内容,如 AGPL-3.0-only
许可的第 11 节中定义。
依赖关系
~18–31MB
~553K SLoC