SemVer Version Comparator & Range Tester

Which version is newer? Does ^2.3.1 accept 2.9.0? Paste your versions and ranges — get the answer and a plain-language breakdown of the rules.

—
Embed this tool on your website / blog No code required · Copy and paste
HTML Embed Code (iframe):
<iframe src="https://lucentool.com/semver-compare" width="100%" height="650" style="border:1px solid #e5e0d8;border-radius:12px;max-width:850px;width:100%;" frameborder="0"></iframe>
<div style="font-size:12px;color:#78716c;margin-top:6px;font-family:sans-serif;">Powered by <a href="https://lucentool.com/semver-compare" target="_blank" style="color:#c85a32;text-decoration:none;">Lucentool - SemVer Version Comparator & Range Tester</a></div>

Semantic versioning in one minute

SemVer is MAJOR.MINOR.PATCH: bump MAJOR for breaking changes, MINOR for backward-compatible features, PATCH for bug fixes. Pre-release tags (-beta.2, -rc.1) sort before the final release. Comparison is numeric, segment by segment, left to right — 2.10.0 > 2.9.9 because 10 > 9, never string order.

Range operators

Why it matters

Lockfiles and package managers resolve ranges every install. Knowing what ^ actually allows — and that ^0.x behaves like ~0.x — prevents surprise upgrades (or missing security patches) in your dependencies.