deps-engine
The composition root for the deps-lsp workspace.
This crate exists only because Cargo forbids a cycle: deps-core cannot depend on any
deps-<ecosystem> crate, since all 14 already depend on deps-core. deps-engine sits one
layer above deps-core and depends on every feature-gated deps-<ecosystem> crate instead,
so every driving adapter (deps-lsp and deps-cli) shares one
registration instead of each reimplementing it independently.
Not a user-facing crate — nothing here is meant to be consumed directly outside this workspace's own adapter crates.
What this crate contains
setup::EcosystemRuntime— bundles the live-updatable settings (registries.*) an adapter threads into the ecosystems that need themsetup::register_ecosystems— wires every feature-enableddeps-<ecosystem>crate into adeps_core::EcosystemRegistrydeps-cli's shared check/update pipeline — per-package OSV verification, freshness-cooldown fallback selection, and gossip handling, socheckandupdateagree with the LSPsetup::EcosystemRuntime::from_policy— builds a runtime from adeps_core::policy_config::PolicyConfigsnapshot
Installation
[]
= { = "2.0", = false, = ["cargo", "npm"] }
[!IMPORTANT] Requires Rust 1.98 or later. This crate deliberately declares no
defaultfeature list — a consuming adapter must forward the exact ecosystem features it wants (seedeps-lsp/Cargo.toml'scargo = ["deps-engine/cargo"]-style forwarding), or Cargo would otherwise activate every ecosystem feature regardless of the adapter's own selection.
Feature flags
One flag per ecosystem — cargo, npm, pypi, go, bundler, dart, maven, gradle,
swift, composer, nuget, deno, github-actions, gitlab-ci — each gating that
ecosystem crate's optional dependency and its ecosystem!-generated re-exports.
License
MIT — see LICENSE.