cargo-msrv
这个 crate 可以帮助你找出某个 crate 的最低支持 Rust 版本。
本自述文件包含了帮助你入门的所有内容。你可以在 cargo-msrv 手册 中找到更详细的说明。
安装
cargo(crates.io 源)
cargo | 支持 | 命令 |
---|---|---|
stable | 💚 | $ cargo install cargo-msrv |
beta | 💚 | $ cargo install cargo-msrv --version 0.16.0-beta.25 |
development | ❌ |
cargo(git 源)
cargo | 支持 | 命令 |
---|---|---|
stable | 💚 | $ cargo install --git https://github.com/foresterre/cargo-msrv.git --tag v0.15.1 cargo-msrv |
beta | 💚 | $ cargo install --git https://github.com/foresterre/cargo-msrv.git --tag v0.16.0-beta.25 cargo-msrv |
development | 💚 | $ cargo install --git https://github.com/foresterre/cargo-msrv.git cargo-msrv |
cargo-binstall
cargo | 支持 | 命令 |
---|---|---|
stable | 💚 | $ cargo binstall --version 0.15.1 --no-confirm cargo-msrv |
beta | 💚 | $ cargo binstall --version 0.16.0-beta.25 --no-confirm cargo-msrv |
development | ❌ |
Arch Linux extra 仓库
pacman -S cargo-msrv
Docker
你可以使用以下命令通过 Docker 构建和运行:
$ docker build -t cargo-msrv .
$ docker run -t -v "$(pwd)/Cargo.toml":/app/Cargo.toml cargo-msrv
Docker 镜像也可在 Docker Hub 上获取。
前提条件
cargo msrv (find)
和 cargo msrv verify
命令需要 Rustup。
预览
使用方法
cargo msrv find
或cargo msrv find --linear
用于查找当前工作目录中 Cargo 项目的 MSRV。cargo msrv --path <dir> find
用于查找<dir>
目录中 Cargo 项目的 MSRV。cargo msrv find -- <command>
使用<command>
作为兼容性检查,以决定 Rust 版本是否兼容。这个命令应该可以通过 rustup 运行,如rustup run <toolchain> <command>
。- 示例:
cargo msrv find -- cargo check --tests
。
- 示例:
cargo msrv verify
用于验证 crate 作者指定的 MSRV。- crate 作者可以使用
package.rust-version
(Rust >=1.56)或package.metadata.msrv
键在 'Cargo.toml' 清单中指定 MSRV。详细说明请参见手册。
- crate 作者可以使用
cargo msrv list
用于列出依赖项的 MSRV,这些 MSRV 由它们的作者指定。cargo msrv show
用于显示当前指定的 MSRV。
请参阅 cargo-msrv 手册中的 commands 章节,以获取支持的(子)命令的更详细描述。
选项
查找你的最低支持 Rust 版本!
用法:cargo msrv [选项] <命令>
命令:
find 查找 MSRV
list 显示依赖项的 MSRV
set 将当前 crate 的 MSRV 设置为给定的 Rust 版本
show 显示你的 crate 的 MSRV,如 Cargo 清单中所指定
verify 验证 MSRV 是否可满足
help 打印此消息或给定子命令的帮助
选项:
--path <Crate 目录>
Cargo 项目目录的路径
--manifest-path <Cargo 清单>
Cargo 清单文件的路径
-h, --help
打印帮助(使用 '-h' 查看摘要)
-V, --version
打印版本
用户输出选项:
--output-format <格式>
设置用户输出的格式
[默认:human]
可能的值:
- human: 进度条渲染到 stderr
- json: Json 状态更新打印到 stdout
- minimal: 最小输出,通常只有结果,如 MSRV 或验证是否成功或失败
--no-user-output
禁用用户输出
调试输出选项:
--no-log
禁用日志记录
--log-target <日志目标>
指定程序应输出日志的位置
[默认:file]
[可能的值:file, stdout]
--log-level <级别>
指定应记录的日志严重程度
[默认:info]
[可能的值:trace, debug, info, warn, error]
你可以提供一个自定义的兼容性 `check` 命令作为最后一个参数(仅当通过双破折号语法提供此参数时,
例如 `$ cargo msrv -- custom command`)。
然后,这个自定义检查命令将用于验证 Rust 版本是否兼容。
自定义 `check` 命令应该可以通过 rustup 运行,因为它们将被传递给 rustup,
如下所示:`rustup run <toolchain> <命令...>`。注意:你只需要提供 <命令...> 部分。
默认情况下,自定义检查命令是 `cargo check`。
JSON 格式
通过提供 --output-format json
标志可以启用 JSON 输出:cargo msrv find --output-format json
。
事件以 json 行的形式打印。事件类型由 type
键指示。
请参阅手册中的 输出格式 和 输出格式:JSON 章节,以获取此输出格式的文档。
许可证
根据以下任一许可证授权
- Apache License, Version 2.0,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT license(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由你选择。
贡献
除非你明确声明,否则你有意提交以包含在作品中的任何贡献, 如 Apache-2.0 许可证中所定义,均应按上述方式双重许可, 无任何附加条款或条件。