semver

Parser and evaluator for Cargo's flavor of Semantic Versioning

Latest version: 1.0.28 registry icon
Maintenance score
99
Safety score
100
Popularity score
84
Check your open source dependency risks. Get immediate insight about security, stability and licensing risks.
Security
  Vulnerabilities
Version Suggest Low Medium High Critical
1.0.28 0 0 0 0 0
1.0.27 0 0 0 0 0
1.0.26 0 0 0 0 0
1.0.25 0 0 0 0 0
1.0.24 0 0 0 0 0
1.0.23 0 0 0 0 0
1.0.22 0 0 0 0 0
1.0.21 0 0 0 0 0
1.0.20 0 0 0 0 0
1.0.19 0 0 0 0 0
1.0.18 0 0 0 0 0
1.0.17 0 0 0 0 0
1.0.16 0 0 0 0 0
1.0.15 0 0 0 0 0
1.0.14 0 0 0 0 0
1.0.13 0 0 0 0 0
1.0.12 0 0 0 0 0
1.0.11 0 0 0 0 0
1.0.10 0 0 0 0 0
1.0.9 0 0 0 0 0
1.0.8 0 0 0 0 0
1.0.7 0 0 0 0 0
1.0.6 0 0 0 0 0
1.0.5 0 0 0 0 0
1.0.4 0 0 0 0 0
1.0.3 0 0 0 0 0
1.0.2 0 0 0 0 0
1.0.1 0 0 0 0 0
1.0.0 0 0 0 0 0
0.11.0 0 0 0 0 0
0.10.0 0 0 0 0 0
0.9.0 0 0 0 0 0
0.8.0 0 0 0 0 0
0.7.0 0 0 0 0 0
0.6.0 0 0 0 0 0
0.5.1 0 0 0 0 0
0.5.0 0 0 0 0 0
0.4.1 0 0 0 0 0
0.4.0 0 0 0 0 0
0.2.3 0 0 0 0 0
0.2.2 0 0 0 0 0
0.2.1 0 0 0 0 0
0.2.0 0 0 0 0 0
0.1.20 0 0 0 0 0
0.1.19 0 0 0 0 0
0.1.18 0 0 0 0 0
0.1.17 0 0 0 0 0
0.1.16 0 0 0 0 0
0.1.15 0 0 0 0 0
0.1.14 0 0 0 0 0
0.1.13 0 0 0 0 0
0.1.12 0 0 0 0 0
0.1.11 0 0 0 0 0
0.1.10 0 0 0 0 0
0.1.9 0 0 0 0 0
0.1.8 0 0 0 0 0
0.1.7 0 0 0 0 0
0.1.6 0 0 0 0 0
0.1.5 0 0 0 0 0
0.1.4 0 0 0 0 0
0.1.3 0 0 0 0 0
0.1.2 0 0 0 0 0
0.1.1 0 0 0 0 0
0.1.0 0 0 0 0 0

Stability
Latest release:

1.0.28 - This version is safe to use because it has no known security vulnerabilities at this time. Find out if your coding project uses this component and get notified of any reported security vulnerabilities with Meterian-X Open Source Security Platform

Licensing

Maintain your licence declarations and avoid unwanted licences to protect your IP the way you intended.

MIT   -   MIT License

Not a wildcard

Not proprietary

OSI Compliant


Apache-2.0   -   Apache License 2.0

Not a wildcard

Not proprietary

OSI Compliant



semver

github crates.io docs.rs build status

A parser and evaluator for Cargo's flavor of Semantic Versioning.

Semantic Versioning (see https://semver.org) is a guideline for how version numbers are assigned and incremented. It is widely followed within the Cargo/crates.io ecosystem for Rust.

[dependencies]
semver = "1.0"

Example

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));
}

Scope of this crate

Besides Cargo, several other package ecosystems and package managers for other languages also use SemVer: RubyGems/Bundler for Ruby, npm for JavaScript, Composer for PHP, CocoaPods for Objective-C...

The semver crate is specifically intended to implement Cargo's interpretation of Semantic Versioning.

Where the various tools differ in their interpretation or implementation of the spec, this crate follows the implementation choices made by Cargo. If you are operating on version numbers from some other package ecosystem, you will want to use a different semver library which is appropriate to that ecosystem.

The extent of Cargo's SemVer support is documented in the Specifying Dependencies chapter of the Cargo reference.


License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.