40 个版本 (23 个稳定版)
1.0.23 | 2024年5月7日 |
---|---|
1.0.22 | 2024年2月19日 |
1.0.21 | 2024年1月2日 |
1.0.20 | 2023年10月9日 |
0.1.3 |
|
#4 in 解析器实现
每月下载量10,596,666
用于 21,182 个 crate(直接使用 1,428 个)
83KB
1.5K SLoC
semver
Cargo 的语义版本化风格的解析器和评估器。
语义版本化(参见 https://semver.org)是关于如何分配和增加版本号的指南。在 Rust 的 Cargo/crates.io 生态系统中广泛遵循。
[dependencies]
semver = "1.0"
编译器支持:需要 rustc 1.31+
示例
use semver::{BuildMetadata, Prerelease, Version, VersionReq};
fn main() {
let req = VersionReq::parse(">=1.2.3, <1.8.0").unwrap();
// Check whether this requirement matches version 1.2.3-alpha.1 (no)
let version = Version {
major: 1,
minor: 2,
patch: 3,
pre: Prerelease::new("alpha.1").unwrap(),
build: BuildMetadata::EMPTY,
};
assert!(!req.matches(&version));
// Check whether it matches 1.3.0 (yes it does)
let version = Version::parse("1.3.0").unwrap();
assert!(req.matches(&version));
}
本 crate 的范围
除了 Cargo,其他一些语言的其他包生态系统和包管理器也使用 SemVer:RubyGems/Bundler 用于 Ruby,npm 用于 JavaScript,Composer 用于 PHP,CocoaPods 用于 Objective-C...
semver
crate 旨在特别实现 Cargo 对语义版本化的解释。
在各个工具在规范的解释或实现上存在差异时,此 crate 遵循 Cargo 所做的实现选择。如果你正在处理来自其他包生态系统的版本号,你将需要使用适合该生态系统的其他 semver 库。
Cargo 的 SemVer 支持范围在 Cargo 参考文档的“指定依赖项”章节中有记录。
许可证
根据您的选择,受 Apache 许可证 2.0 版 或 MIT 许可证 许可。除非您明确表示,否则您根据 Apache-2.0 许可证定义的任何旨在包含在此 crate 中的贡献,都将按上述方式双重许可,没有任何额外的条款或条件。
依赖项
~165KB