Inspectors

Semver Range Tester

Enter a semantic version and a range expression to check if the version satisfies the range. Supports npm/cargo syntax (^1.2.3, ~1.2.0, >=2.0.0, etc.) and Go module syntax (v1.2.3). The tool parses the version into its components (major, minor, patch, prerelease, build metadata) and evaluates the range expression to give a clear yes/no answer.

Semver Range Tester — Parse semver versions and test them against range expressions (npm/cargo/go syntax)

What it does

  • Parses semantic versions into major, minor, patch, prerelease, and build components
  • Tests versions against range expressions (^1.2.3, ~1.2.0, >=2.0.0, <3.0.0)
  • Supports npm/cargo caret (^) and tilde (~) ranges
  • Supports compound ranges (>=1.0.0 <2.0.0)
  • Supports Go module version syntax (v1.2.3)
  • Handles prerelease versions (1.0.0-beta.1) and build metadata (1.0.0+build.123)

Use cases

  • Checking if a package version satisfies a dependency range in package.json
  • Verifying that a version bump doesn't break a semver range constraint
  • Understanding what ^1.2.3 actually allows (>=1.2.3 <2.0.0)
  • Testing Go module version compatibility

How it works

1

Enter a semantic version (e.g., 1.4.2) in the version field

2

Enter a range expression (e.g., ^1.2.0) in the range field

3

The tool parses both and checks if the version satisfies the range

4

The result (satisfies / does not satisfy) is displayed with explanation

Frequently asked questions

1What does ^1.2.3 mean?

The caret (^) allows changes that don't modify the leftmost non-zero digit. ^1.2.3 allows >=1.2.3 <2.0.0 (any 1.x.x version >= 1.2.3). ^0.2.3 allows >=0.2.3 <0.3.0 (only 0.2.x). ^0.0.3 allows only 0.0.3. This is npm's default range.

2What does ~1.2.3 mean?

The tilde (~) allows patch-level changes if a minor version is specified. ~1.2.3 allows >=1.2.3 <1.3.0 (any 1.2.x version). ~1.2 allows >=1.2.0 <1.3.0. ~1 allows >=1.0.0 <2.0.0. This is more restrictive than the caret.

3Does it support Go module version syntax?

Yes. Go uses a v-prefixed version (v1.2.3) and has its own range semantics. The tool handles Go-style version strings and can test them against Go module pseudo-versions and tag constraints.

Related tools

Use Semver Range Tester offline in Devinity

All 95 tools run locally on your Mac. No internet required, no data sent to servers.

Download Devinity →