1 个稳定版本
1.0.22 | 2024年4月26日 |
---|
#305 在 数据结构
用于 wasmenv
82KB
1.5K SLoC
semver
Cargo的语义版本控制风格的解析器和评估器。
语义版本控制(见 https://semver.org)是一套关于如何分配和递增版本号的指南。在Rust的Cargo/crates.io生态系统中被广泛遵循。
[dependencies]
semver = "1.0"
编译器支持:需要rustc 1.31+
示例
use semver_eq::{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));
}
本包的范围
除了Cargo,其他几种语言的包生态系统和包管理器也使用SemVer:Ruby的RubyGems/Bundler、JavaScript的npm、PHP的Composer、Objective-C的CocoaPods...
semver
包旨在实现Cargo对语义版本控制的解释。
在不同工具对规范的解释或实现存在差异时,本包遵循Cargo做出的实现选择。如果您正在处理来自其他包生态系统的版本号,您将需要使用适合该生态系统的不同semver库。
Cargo对SemVer的支持范围在Cargo参考的《指定依赖》章节中有所说明。
许可证
根据您的选择,受Apache License, Version 2.0或MIT许可证约束。除非您明确声明,否则您提交给本包的任何贡献,根据Apache-2.0许可证定义,都应作为上述的双许可,而不附加任何额外条款或条件。
依赖项
~170KB