https://github.com/cijiugechu/nodejs-semver
A node-semver compliant semver implementation in Rust.
https://github.com/cijiugechu/nodejs-semver
javascript nodejs npm parser rust semantic-versioning semver
Last synced: 10 months ago
JSON representation
A node-semver compliant semver implementation in Rust.
- Host: GitHub
- URL: https://github.com/cijiugechu/nodejs-semver
- Owner: cijiugechu
- License: other
- Created: 2023-09-05T12:40:52.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-12-26T08:45:59.000Z (about 1 year ago)
- Last Synced: 2025-04-12T05:52:23.348Z (10 months ago)
- Topics: javascript, nodejs, npm, parser, rust, semantic-versioning, semver
- Language: Rust
- Homepage:
- Size: 121 KB
- Stars: 7
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# `nodejs-semver`
[](https://crates.io/crates/nodejs-semver)
[](https://docs.rs/nodejs-semver)
This crate is a pure Rust-based implementation of JavaScript's
[`node-semver`](https://npm.im/semver). That is, it's designed to be
compatible with Node/NPM's particular flavor of semver (which the [`semver`
crate](https://crates.io/crates/semver) 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](https://github.com/felipesere/node-semver-rs) since September of 2023, but a lot has changed; For more details, see [Changelog](https://github.com/cijiugechu/nodejs-semver/blob/main/CHANGELOG.md).
## Usage
`nodejs-semver` includes two main types: [Version] and [Range]. See [the
documentation](https://docs.rs/nodejs-semver) for more details.:
```rust
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](https://doc.rust-lang.org/stable/cargo/reference/features.html#the-features-section) that can be enabled:
- **serde**: Provides serialization and deserialization for [Version] and [Range].