Expand description
§js-semver
A parser and evaluator for npm’s flavor of Semantic Versioning.
This crate is designed for the JavaScript ecosystem and follows node-semver (the one npm uses) parsing and range semantics. It maintains high compatibility and performance, and has zero dependencies by default.
§Examples
use js_semver::{BuildMetadata, PreRelease, Range, Version};
fn main() {
let range: Range = ">=4.1.0 <5.0.0".parse().unwrap();
// Pre-release versions are not included in the range unless explicitly specified.
let version = Version {
major: 4,
minor: 1,
patch: 0,
pre_release: PreRelease::new("rc.1").unwrap(),
build: BuildMetadata::default(),
};
assert!(!range.satisfies(&version));
// Stable version is included in the range.
let version: Version = "4.1.0".parse().unwrap();
assert!(range.satisfies(&version));
}Structs§
- Build
Metadata - Parsed build metadata such as
build.42. - PreRelease
- A parsed pre-release identifier list such as
alpha.1. - Range
- A version range, e.g.
^1.0.0or>=1.0.0 <2.0.0-0. - Semver
Error - Error returned when a version or range string cannot be parsed.
- Version
- A parsed semantic version.