🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@csaf-rs/vers-rs

Package Overview
Dependencies
Maintainers
2
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@csaf-rs/vers-rs

A library for parsing and checking version range specifiers

latest
Source
npmnpm
Version
0.1.2
Version published
Weekly downloads
6
-60%
Maintainers
2
Weekly downloads
 
Created
Source

vers-rs

Build crates.io npm

A Rust library (with WASM support) for parsing, validating, and checking version range specifiers.

This library implements the version range specifier (vers) format as described in the vers-spec.

Usage

use vers_rs::schemes::semver::*;
use vers_rs::{parse, contains, GenericVersionRange};
use vers_rs::range::VersionRange;

// Parse a version range specifier with an explicit type
let range: GenericVersionRange<SemVer> = "vers:npm/>=1.0.0|<2.0.0".parse().unwrap();

// Parse a version range specifier with dynamic dispatch
let dynamic_range = parse("vers:npm/>=1.0.0|<2.0.0").unwrap();

// Check if a version is within the range
assert!(range.contains(&"1.5.0".parse().unwrap()).unwrap());
assert!(!range.contains(&"2.0.0".parse().unwrap()).unwrap());

assert!(dynamic_range.contains("1.5.0").unwrap());
assert!(!dynamic_range.contains("2.0.0").unwrap());

Features

  • Parse version range specifiers in the format vers:<versioning-scheme>/<version-constraint>|<version-constraint>|...
  • Validate version range specifiers according to the rules in the specification
  • Normalize and simplify version range specifiers
  • Check if a version is within a specified range
  • Support for different versioning schemes (npm/semver, pypi, maven, deb, etc.)
  • Dynamic dispatch wrapper that automatically detects version schemes

TODO: Future Improvements

  • Version Comparison: Implement proper version comparison for different versioning schemes:

    • PEP440 for Python/PyPI
    • Maven versioning rules
    • Debian versioning rules
    • RubyGems versioning rules
  • Normalization: Improve the normalization algorithm:

    • Use proper version comparison for sorting
    • Handle more edge cases
    • Optimize for better performance
  • Validation: Enhance validation:

    • Validate version formats for different versioning schemes
    • Add more detailed error messages
    • Make sort order validation a hard requirement
  • Error Handling: Improve error handling:

    • Add more specific error types
    • Provide more context in error messages
    • Consider returning errors for unknown versioning schemes

Keywords

vers

FAQs

Package last updated on 27 Nov 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts