Free tool · Cargo and npm rules · runs in your browser
Semver checker.
Type a version requirement and see the exact range it stands for, which versions match and why the others don't. Switch between Cargo and npm rules, because the same text means different things in each, and load the real versions of any crate or package.
Short answer: in Cargo a bare 1.2.3 means >=1.2.3, <2.0.0; in npm it means exactly 1.2.3. Caret keeps the left-most non-zero number, tilde keeps the minor, and pre-releases only match when the requirement names one.
| Version | Matches? | Why |
|---|
Worked example
The same text means different things in the two tools. In Cargo, serde = "1.2.3" is a caret requirement: >=1.2.3, <2.0.0, so any 1.x from 1.2.3 up is fine. In npm, "1.2.3" means exactly 1.2.3 and nothing else. Load serde above with the requirement 1.0: on Oct 23, 2026 the crates.io API listed 1.0.229 as serde's newest version, so a fresh cargo update picks 1.0.229. Zeros change the rule: in both tools ^0.2.3 means >=0.2.3, <0.3.0, because the first non-zero number is the one treated as "major".
How it works
- Cargo default (caret). A bare version allows updates that keep the left-most non-zero number:
1.2.3=>=1.2.3, <2.0.0;0.2.3=>=0.2.3, <0.3.0;0.0.3=>=0.0.3, <0.0.4;0=>=0.0.0, <1.0.0(Cargo Book). - Tilde.
~1.2.3=>=1.2.3, <1.3.0;~1=>=1.0.0, <2.0.0. Wildcards:1.*=>=1.0.0, <2.0.0. Comparisons:>=,>,<,<=,=. In Cargo, commas mean AND: every part must hold. - npm differences. A bare version is exact. Spaces mean AND,
||means OR,1.2.3 - 2.3.4is an inclusive range and1.xis a wildcard (node-semver README). - Pre-releases. Both tools skip versions like
2.0.0-beta.1unless the requirement itself names a pre-release on the same major.minor.patch. "Cargo allows newer pre-releases to be used automatically", but only on that same release version (Cargo Book). - Loading versions. The button makes one request to
crates.io/api/v1/crates/<name>(Cargo) orregistry.npmjs.org/<name>(npm). Yanked crate versions are marked; Cargo won't pick them for a new lockfile.
Sources
- The Cargo Book: Specifying Dependencies, read Oct 23, 2026
- npm/node-semver README: Ranges, read Oct 23, 2026
- Semantic Versioning 2.0.0 (precedence rules), read Oct 23, 2026
Related
- crates.io real-downloads checker
- TOML to JSON converter (read your Cargo.toml)
- What a crates.io download count really measures
Who made this
Matt Busel, who maintains 69 Rust crates on crates.io. The matching runs on your device; only the optional "Load versions" button talks to a registry.