You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查询当前所在Rust crate的版本号?

可靠获取Crate版本号的方法

直接使用Cargo官方CLI命令是最稳定的方案,完全无需手动解析Cargo.toml,这些命令由官方长期维护,不会轻易失效:

获取当前项目的版本号

在项目根目录下执行:

cargo pkgid | cut -d# -f2

输出会是1.2.3这类纯版本号。如果你的Cargo版本在1.59及以上,也可以用cargo metadata配合jq精准提取(适合复杂工作区场景):

cargo metadata --format-version 1 | jq -r '.packages[] | select(.name == "你的_crate名称") | .version'

要是不想依赖jq,用awk处理pkgid的输出也可行:

cargo pkgid | awk -F '#' '{print $2}'

获取依赖Crate的版本号

如果要查询某个依赖的版本,比如serde,可以用:

cargo metadata --format-version 1 | jq -r '.packages[] | select(.name == "serde") | .version'

或者用cargo tree快速过滤:

cargo tree -p serde --depth 0 | awk '{print $2}'

不推荐用grep解析Cargo.toml的原因

手动用grep查找version字段很容易踩坑:

  • 工作区项目中可能存在多个version字段(子crate、依赖声明里都可能出现)
  • 版本号可能被注释掉,grep会误抓取
  • Cargo.toml允许版本号使用多行写法,grep无法正确识别

而Cargo的官方命令会正确处理所有合法的配置格式,兼容性和稳定性都有保障,完全不用自己处理这些边缘情况。

内容的提问来源于stack exchange,提问作者SwimBikeRun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 23:45:42