npm/node-semver

The semver parser for node (the one npm uses)

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 5 minutes ago
Added to GitGenius on September 12th, 2026
Created on February 12th, 2011
Open Issues & Pull Requests: 61 (+0)
GitHub issues: Enabled
Number of forks: 598
Total Stargazers: 5,465 (+0)
Total Subscribers: 100 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 7.0 days
Mean response time: 260.5 days
90th percentile: 1132.7 days
Tracked items: 52

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 100% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Only 4% of issues opened in the past year have been closed. Three people close 86% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 23
New in 7 days: 1
Closed in 7 days: 0
Avg open age: 1,268 days
Stale 30+ days: 21
Stale 90+ days: 18

Recent activity

Opened in 7 days: 1
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • Bug (28)
  • Needs Triage (20)
  • invalid (7)
  • Enhancement (4)
  • semver:major (4)
  • spec (2)
  • Needs Discussion (1)
  • Needs Documentation (1)

Detailed Description

node-semver is a semantic version parser and range matcher that implements the semver specification for Node.js and npm.

The tool solves the problem of reliably parsing, comparing, and matching semantic versions across dependency management workflows. It parses version strings according to the semver specification, handles version ranges using operators like greater-than, less-than, and equality, and determines whether specific versions satisfy declared ranges. The approach supports complex range expressions by combining comparators with whitespace for intersection logic and the || operator for union logic, allowing developers to express flexible version constraints like ">=1.2.7 <1.3.0" or "1.2.7 || >=1.2.9 <2.0.0". The tool includes special handling for prerelease versions, which are only matched when a prerelease tag appears in the range itself, preventing accidental adoption of unstable versions while allowing explicit opt-in to specific prerelease lines.

Developers should adopt this tool if they need to programmatically work with semantic versions in Node.js applications or build tools. It suits any project that parses version strings, evaluates version constraints, or implements dependency resolution logic. The tool is available both as a Node.js module for programmatic use and as a command-line utility, allowing developers to choose the integration approach that fits their needs. It strips leading "v" or "=" characters for compatibility, making it forgiving of common version string formats.

The project maintains active engagement with dependency updates and bug fixes. The codebase receives regular maintenance addressing edge cases in version comparison and range matching logic. Development activity shows consistent attention to compatibility concerns, particularly around prerelease version handling and specification compliance.