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
355KB
7K
SLoC
deps-npm
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.jsonwith position tracking fordependencies,devDependencies, andpeerDependencies - 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/packageformat
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
Dependencies
~16–25MB
~350K SLoC