Crate nodejs_semver

Source
Expand description

§nodejs-semver

Cargo Documentation

This crate is a pure Rust-based implementation of JavaScript’s node-semver. That is, it’s designed to be compatible with Node/NPM’s particular flavor of semver (which the semver crate is not).

It is designed for Rust programs and libraries meant for JavaScript tooling, and does its best to stay compatible with node-semver.

This project has been forked from node-semver since September of 2023, but a lot has changed; For more details, see Changelog.

§Usage

nodejs-semver includes two main types: Version and Range. See the documentation for more details.:

use nodejs_semver::{Range, Version};

let version: Version = "1.2.3".parse().unwrap();
let range: Range = "^1.2".parse().unwrap();

assert!(version.satisfies(&range));

§Optional Features

The following are a list of Cargo features that can be enabled:

  • serde: Provides serialization and deserialization for Version and Range.

Structs§

Range
Node-style semver range.
SemverError
Semver version or range parsing error wrapper.
Version
A semantic version, conformant to the semver spec.

Enums§

Identifier
An Identifier type for build and prerelease metadata.
SemverErrorKind
The specific kind of error that occurred. Usually wrapped in a SemverError.
VersionDiff
difference between two versions by the release type

Constants§

MAX_LENGTH
Maximum length of a semver string.
MAX_SAFE_INTEGER
JavaScript’s MAX_SAFE_INTEGER. This is used to determine the maximum value for integer components in a JS-compatible way.

Type Aliases§

ReleaseType
difference between two versions