1semver 2====== 3 4[<img alt="github" src="https://img.shields.io/badge/github-dtolnay/semver-8da0cb?style=for-the-badge&labelColor=555555&logo=github" height="20">](https://github.com/dtolnay/semver) 5[<img alt="crates.io" src="https://img.shields.io/crates/v/semver.svg?style=for-the-badge&color=fc8d62&logo=rust" height="20">](https://crates.io/crates/semver) 6[<img alt="docs.rs" src="https://img.shields.io/badge/docs.rs-semver-66c2a5?style=for-the-badge&labelColor=555555&logoColor=white&logo=data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPjxwYXRoIGZpbGw9IiNmNWY1ZjUiIGQ9Ik00ODguNiAyNTAuMkwzOTIgMjE0VjEwNS41YzAtMTUtOS4zLTI4LjQtMjMuNC0zMy43bC0xMDAtMzcuNWMtOC4xLTMuMS0xNy4xLTMuMS0yNS4zIDBsLTEwMCAzNy41Yy0xNC4xIDUuMy0yMy40IDE4LjctMjMuNCAzMy43VjIxNGwtOTYuNiAzNi4yQzkuMyAyNTUuNSAwIDI2OC45IDAgMjgzLjlWMzk0YzAgMTMuNiA3LjcgMjYuMSAxOS45IDMyLjJsMTAwIDUwYzEwLjEgNS4xIDIyLjEgNS4xIDMyLjIgMGwxMDMuOS01MiAxMDMuOSA1MmMxMC4xIDUuMSAyMi4xIDUuMSAzMi4yIDBsMTAwLTUwYzEyLjItNi4xIDE5LjktMTguNiAxOS45LTMyLjJWMjgzLjljMC0xNS05LjMtMjguNC0yMy40LTMzLjd6TTM1OCAyMTQuOGwtODUgMzEuOXYtNjguMmw4NS0zN3Y3My4zek0xNTQgMTA0LjFsMTAyLTM4LjIgMTAyIDM4LjJ2LjZsLTEwMiA0MS40LTEwMi00MS40di0uNnptODQgMjkxLjFsLTg1IDQyLjV2LTc5LjFsODUtMzguOHY3NS40em0wLTExMmwtMTAyIDQxLjQtMTAyLTQxLjR2LS42bDEwMi0zOC4yIDEwMiAzOC4ydi42em0yNDAgMTEybC04NSA0Mi41di03OS4xbDg1LTM4Ljh2NzUuNHptMC0xMTJsLTEwMiA0MS40LTEwMi00MS40di0uNmwxMDItMzguMiAxMDIgMzguMnYuNnoiPjwvcGF0aD48L3N2Zz4K" height="20">](https://docs.rs/semver/1.0.0) 7[<img alt="build status" src="https://img.shields.io/github/workflow/status/dtolnay/semver/CI/master?style=for-the-badge" height="20">](https://github.com/dtolnay/semver/actions?query=branch%3Amaster) 8 9A parser and evaluator for Cargo's flavor of Semantic Versioning. 10 11Semantic Versioning (see <https://semver.org>) is a guideline for how version 12numbers are assigned and incremented. It is widely followed within the 13Cargo/crates.io ecosystem for Rust. 14 15```toml 16[dependencies] 17semver = "1.0" 18``` 19 20*Compiler support: requires rustc 1.31+* 21 22<br> 23 24## Example 25 26```rust 27use semver::{BuildMetadata, Prerelease, Version, VersionReq}; 28 29fn main() { 30 let req = VersionReq::parse(">=1.2.3, <1.8.0").unwrap(); 31 32 // Check whether this requirement matches version 1.2.3-alpha.1 (no) 33 let version = Version { 34 major: 1, 35 minor: 2, 36 patch: 3, 37 pre: Prerelease::new("alpha.1").unwrap(), 38 build: BuildMetadata::EMPTY, 39 }; 40 assert!(!req.matches(&version)); 41 42 // Check whether it matches 1.3.0 (yes it does) 43 let version = Version::parse("1.3.0").unwrap(); 44 assert!(req.matches(&version)); 45} 46``` 47 48<br> 49 50## Scope of this crate 51 52Besides Cargo, several other package ecosystems and package managers for other 53languages also use SemVer: RubyGems/Bundler for Ruby, npm for JavaScript, 54Composer for PHP, CocoaPods for Objective-C... 55 56The `semver` crate is specifically intended to implement Cargo's interpretation 57of Semantic Versioning. 58 59Where the various tools differ in their interpretation or implementation of the 60spec, this crate follows the implementation choices made by Cargo. If you are 61operating on version numbers from some other package ecosystem, you will want to 62use a different semver library which is appropriate to that ecosystem. 63 64The extent of Cargo's SemVer support is documented in the *[Specifying 65Dependencies]* chapter of the Cargo reference. 66 67[Specifying Dependencies]: https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html 68 69<br> 70 71#### License 72 73<sup> 74Licensed under either of <a href="LICENSE-APACHE">Apache License, Version 752.0</a> or <a href="LICENSE-MIT">MIT license</a> at your option. 76</sup> 77 78<br> 79 80<sub> 81Unless you explicitly state otherwise, any contribution intentionally submitted 82for inclusion in this crate by you, as defined in the Apache-2.0 license, shall 83be dual licensed as above, without any additional terms or conditions. 84</sub> 85