23 releases (7 breaking)

Uses new Rust 2024

new 0.9.3 Mar 28, 2026
0.9.0 Feb 23, 2026
0.5.2 Dec 27, 2025

#896 in Text editors


Used in deps-lsp

MIT license

355KB
7K SLoC

deps-npm

Crates.io docs.rs CI codecov License: MIT

npm/package.json support for deps-lsp.

This crate is part of the deps-lsp workspace. It provides parsing and registry integration for the npm ecosystem and implements deps_core::Ecosystem.

Features

  • JSON parsing — Parse package.json with position tracking for dependencies, devDependencies, and peerDependencies
  • Lock file parsing — Extract resolved versions from package-lock.json (v2/v3)
  • npm registry — Client for npm registry API with metadata caching
  • Node semver resolution — Full ^, ~, >=, <, range, and tag specifier support
  • Scoped packages — Support for @scope/package format

Installation

[dependencies]
deps-npm = "0.9.3"

[!IMPORTANT] Requires Rust 1.89 or later.

Usage

use deps_npm::{parse_package_json, NpmRegistry};

let dependencies = parse_package_json(content)?;
let registry = NpmRegistry::new(cache);
let versions = registry.get_versions("express").await?;

Benchmarks

cargo bench -p deps-npm

Parsing performance: ~3 us for small files, ~45 us for monorepo package.json.

License

MIT

Dependencies

~16–25MB
~350K SLoC