1 个稳定版本
1.0.14 | 2022年12月19日 |
---|
#314 在 数据结构
3,031 每月下载量
用于 29 个crate(9 个直接使用)
81KB
1.5K SLoC
semver
Cargo的语义版本(SemVer)解析器和评估器。
语义版本(SemVer,见 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:Ruby的RubyGems/Bundler,JavaScript的npm,PHP的Composer,Objective-C的CocoaPods...
semver
crate旨在具体实现Cargo对语义版本的解释。
在工具对规范的解释或实现存在差异时,此crate遵循Cargo做出的实现选择。如果您正在处理来自其他包生态系统的版本号,您将需要使用适合该生态系统的其他semver库。
Cargo对SemVer的支持范围在Cargo参考的“指定依赖项”章节中有记录。
许可
根据您的选择,在Apache许可证,版本2.0或MIT许可证下许可。除非您明确说明,否则根据Apache-2.0许可证定义的任何有意提交以包含在此crate中的贡献,均应按上述方式双许可,不附加任何额外条款或条件。
依赖
~175KB