Skip to main content
Bun provides a fast semver (semantic versioning) parser and comparator for working with version strings. It follows the Semver 2.0.0 specification.

Basic Usage

Version Parsing

Basic Versions

Prerelease Versions

Build Metadata

Version Comparison

Order Comparison

Comparison Functions

Version Ranges

Caret Ranges (^)

Allows changes that don’t modify the left-most non-zero digit:

Tilde Ranges (~)

Allows patch-level changes:

Wildcard Ranges (x, X, *)

Comparison Operators

Range Combinations

Hyphen Ranges

Prerelease Versions

Prerelease Precedence

Prerelease Ranges

Common Use Cases

Package Version Checking

Finding Latest Version

Version Compatibility

Breaking Change Detection

Increment Version

Performance

Bun’s semver is highly optimized:
Comparison:
  • Bun semver: ~2M ops/sec
  • node-semver: ~500k ops/sec

Best Practices

  1. Use caret for libraries
  2. Use exact versions for apps
  3. Be careful with prereleases
  4. Validate versions

API Reference

semver.parse()

Parse a version string:

semver.satisfies()

Check if version satisfies range:

semver.order()

Compare two versions:

Comparison Functions