#rustc-version #compiler-version #rustc #version #check #minimum #env-var

build version_check

一个用于检查已安装/运行rustc版本的轻量级crate

12个版本

使用旧Rust 2015

0.9.5 2024年7月25日
0.9.4 2021年12月29日
0.9.3 2021年3月16日
0.9.2 2020年5月24日
0.1.0 2017年1月15日

#8 in 构建实用工具

Download history 2023187/week @ 2024-05-02 1980922/week @ 2024-05-09 2050796/week @ 2024-05-16 1991252/week @ 2024-05-23 2245139/week @ 2024-05-30 2159752/week @ 2024-06-06 2301887/week @ 2024-06-13 2196739/week @ 2024-06-20 2161786/week @ 2024-06-27 2053307/week @ 2024-07-04 2250091/week @ 2024-07-11 2216070/week @ 2024-07-18 2474290/week @ 2024-07-25 2475666/week @ 2024-08-01 2683189/week @ 2024-08-08 2478279/week @ 2024-08-15

10,533,579 每月下载量
用于 45,467 个crate(132个直接使用)

MIT/Apache

48KB
577

version_check

Build Status Current Crates.io Version rustdocs on docs.rs

这个轻量级crate用于检查运行或安装的rustc是否符合某些版本要求。通过调用Rust编译器使用--version来查询版本。首先通过RUSTC环境变量确定编译器的路径。如果没有设置,则使用rustc。如果这失败了,则不进行判断,调用返回None

用法

将其添加到您的Cargo.toml文件中,通常作为构建依赖项

[build-dependencies]
version_check = "0.9"

version_check与Rust 1.0.0及更高版本兼容且可编译。

示例

如果运行编译器至少是版本1.13.0,则在build.rs中设置一个cfg标志

extern crate version_check as rustc;

if rustc::is_min_version("1.13.0").unwrap_or(false) {
    println!("cargo:rustc-cfg=question_mark_operator");
}

检查运行编译器是否发布于2018-12-18或之后

extern crate version_check as rustc;

match rustc::is_min_date("2018-12-18") {
    Some(true) => "Yep! It's recent!",
    Some(false) => "No, it's older.",
    None => "Couldn't determine the rustc version."
};

检查运行编译器是否支持特性标志

extern crate version_check as rustc;

match rustc::is_feature_flaggable() {
    Some(true) => "Yes! It's a dev or nightly release!",
    Some(false) => "No, it's stable or beta.",
    None => "Couldn't determine the rustc version."
};

查看更多示例和完整文档,请参阅rustdocs

替代方案

此crate简单且无依赖。如果您需要更多功能,并且不介意在无法获取版本时引发恐慌,或者您不介意添加依赖项,请参阅rustc_version。如果您更愿意使用通过动态调用rustc和代表代码示例工作的特性检测库,请参阅autocfg

许可证

version_check 可以根据您的选择,采用以下任一许可证

无运行时依赖