node-semver
port of node-semver
Decision gist · record as of 2026-08-14
Yes. Low install friction, no dependencies, active maintenance, permissive license, and no known vulnerabilities make it a safe choice. Install it if you need Node.js-compatible semver semantics in Python; skip it if you only need basic version comparison or Python's own versioning rules.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low friction install with no runtime dependencies.
- Actively maintained as of 2026-06-23 with recent updates.
License · maintenance · safety
mit (permissive) — MIT license permits free use, modification, and distribution with minimal restrictions.
last release 2026-06-23 (52 days) · last repo commit 2026-06-23 · 23 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 2,162,742 downloads/mo, #3,240 on PyPI
Alternatives
Verify before relying
pip install node-semver
from node-semver import max_satisfying
versions = ['1.2.3', '1.2.4', '1.2.5', '1.2.6']
result = max_satisfying(versions, '~1.2.3')- Whether all Node.js semver semantics are fully implemented or if there are known gaps vs. the original.
- Performance characteristics when handling large version lists or complex range expressions.
- Which specific functions beyond max_satisfying are available in the public API.
What it is and what it does
node-semver is a Python port of the Node.js semver library, providing semantic version parsing, comparison, and range matching. It lets you evaluate version strings against semver range expressions (like '~1.2.3'), find the highest version in a list that satisfies a constraint, and validate version strings. The library handles prerelease versions, loose parsing modes, and multi-digit version components.
You'd use it when your Python application needs to resolve version constraints the way Node.js does—for example, in package managers, dependency resolvers, or any tool that must respect npm-style version semantics. It has no external dependencies and supports modern Python versions.
Use it for
- Resolve version constraints in a Python package manager or dependency resolver using Node.js semver rules.
- Filter a list of available versions to find the best match for a given semver range expression.
- Validate and compare version strings in build or deployment tools that must interoperate with Node.js ecosystems.
- Handle prerelease and build metadata in version selection logic with fine-grained control over inclusion rules.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Low install friction, no dependencies, active maintenance, permissive license, and no known vulnerabilities make it a safe choice. Install it if you need Node.js-compatible semver semantics in Python; skip it if you only need basic version comparison or Python's own versioning rules.
Install
node-semver on PyPI
Before you install
Low friction install with no runtime dependencies. Actively maintained as of 2026-06-23 with recent updates.
License in practice
MIT license permits free use, modification, and distribution with minimal restrictions.
Quickstart
pip install node-semver
from node-semver import max_satisfying
versions = ['1.2.3', '1.2.4', '1.2.5', '1.2.6']
result = max_satisfying(versions, '~1.2.3')
Verify before relying
- Whether all Node.js semver semantics are fully implemented or if there are known gaps vs. the original.
- Performance characteristics when handling large version lists or complex range expressions.
- Which specific functions beyond max_satisfying are available in the public API.
Package facts
| License | mit permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 52 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 2,162,742 / month, #3,240 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Programming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: Implementation :: CPython |
Evidence: node_semver-0.9.1-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “semver range matching”
- node-semverParses and compares semantic version strings using Node.js semver…
- semantic-versionParses, validates, and compares semantic version strings according to…
- versionsParses, compares, and validates semantic versions and version…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
See also semver · semantic-version · versions · verspec · bump-my-version · bump · bumpver · python-semantic-release · awesomeversion · release-tag