• Home
Name Date Size #Lines LOC

..--

.github/06-Sep-2024-136122

benches/06-Sep-2024-2519

src/06-Sep-2024-2,1801,359

tests/06-Sep-2024-903749

.cargo_vcs_info.jsonD06-Sep-202494 66

.gitignoreD06-Sep-202466 65

Android.bpD06-Sep-20242 KiB6258

Cargo.tomlD06-Sep-20241.2 KiB4842

Cargo.toml.origD06-Sep-2024695 2722

LICENSED06-Sep-20249.5 KiB177150

LICENSE-APACHED06-Sep-20249.5 KiB177150

LICENSE-MITD06-Sep-20241,023 2421

METADATAD06-Sep-2024623 2119

MODULE_LICENSE_APACHE2D06-Sep-20240

OWNERSD06-Sep-202445 21

README.mdD06-Sep-20242.9 KiB8561

TEST_MAPPINGD06-Sep-2024244 1211

build.rsD06-Sep-20242.5 KiB7644

cargo_embargo.jsonD06-Sep-2024239 1817

README.md

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&logo=docs.rs" height="20">](https://docs.rs/semver)
7[<img alt="build status" src="https://img.shields.io/github/actions/workflow/status/dtolnay/semver/ci.yml?branch=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:&ensp;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