4 releases

Uses new Rust 2024

0.9.3 Mar 28, 2026
0.9.2 Mar 21, 2026
0.9.1 Mar 4, 2026
0.9.0 Feb 23, 2026

#927 in Text editors


Used in deps-lsp

MIT license

330KB
6.5K SLoC

deps-composer

Crates.io docs.rs CI codecov License: MIT

PHP/Composer support for deps-lsp.

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

Features

  • JSON parsing — Parse composer.json with position tracking for require and require-dev sections
  • Lock file parsing — Extract resolved versions from composer.lock
  • Packagist registry — Client for Packagist v2 API with metadata de-minification
  • Version resolution — Composer-specific version matching (^, ~, *, ||, ranges)
  • Platform filtering — Excludes php, ext-*, and lib-* pseudo-packages from registry lookups
  • Case-insensitive names — Package names normalized to lowercase (vendor/package)

[!NOTE] Composer's tilde operator has different semantics from npm: ~1.2 means >=1.2.0 <2.0.0 (not >=1.2.0 <1.3.0).

Installation

[dependencies]
deps-composer = "0.9.3"

[!IMPORTANT] Requires Rust 1.89 or later.

Usage

use deps_composer::{parse_composer_json, PackagistRegistry};

let dependencies = parse_composer_json(content, &uri)?;
let registry = PackagistRegistry::new(cache);
let versions = registry.get_versions("monolog/monolog").await?;

License

MIT

Dependencies

~13–22MB
~308K SLoC