如何列出Rust项目及其依赖所需的最低Rust版本?
如何高效获取Rust项目依赖的最低Rust版本要求
用内置Cargo命令快速列出
Cargo 1.62及以上版本支持通过cargo tree的格式化参数,直接输出所有依赖声明的最低Rust版本:
cargo tree -e normal --format "{p} (rust-version: {rust-version})"
这个命令会遍历项目的直接和间接依赖,输出每个依赖的名称、版本,以及它指定的最低Rust版本。如果某个依赖没有声明rust-version,对应位置会显示为空。
要是只想看直接依赖的信息,加上--depth 1参数即可:
cargo tree -e normal --depth 1 --format "{p} (rust-version: {rust-version})"
用元数据工具提取结构化信息
如果需要更精准的结构化输出,可以用cargo metadata导出依赖的完整元数据,再用jq过滤提取:
cargo metadata --format-version 1 | jq '.packages[] | select(.rust_version != null) | "\(.name) v\(.version): \(.rust_version)"'
这条命令会筛选出所有明确声明了rust-version的依赖,输出格式为依赖名 版本: 最低Rust版本。注意需要先安装jq工具来处理JSON数据。
快速确定项目整体最低支持版本
如果你的目标是找到整个项目能正常编译的最低Rust版本,可以用cargo msrv工具:
- 先安装工具:
cargo install cargo-msrv
- 运行检测命令,它会自动测试不同Rust版本,找出能编译项目的最低版本:
cargo msrv
这个版本通常等于所有依赖声明的最低版本中的最大值。
内容的提问来源于stack exchange,提问作者JamesThomasMoon
相关产品推荐
相关产品推荐

