Skip to main content

deps_core/
lib.rs

1//! Core abstractions for deps-lsp.
2//!
3//! This crate provides the foundational traits and utilities used across
4//! all ecosystem-specific implementations (Cargo, npm, PyPI, etc.).
5//!
6//! # Architecture
7//!
8//! deps-core defines:
9//! - **Traits**: `Registry`, `Version`, `Metadata`, `Ecosystem`, `ParseResult`
10//! - **HTTP Cache**: Shared caching layer with ETag/Last-Modified validation
11//! - **Error Types**: Unified error handling across all ecosystems
12
13pub mod cache;
14pub mod completion;
15pub mod ecosystem;
16pub mod ecosystem_registry;
17pub mod error;
18pub mod lockfile;
19pub mod lsp_helpers;
20pub mod macros;
21pub mod parser;
22pub mod registry;
23pub mod version_matcher;
24
25// Re-export commonly used types
26pub use cache::{CachedResponse, HttpCache};
27pub use ecosystem::{Dependency, Ecosystem, EcosystemConfig, ParseResult};
28pub use ecosystem_registry::EcosystemRegistry;
29pub use error::{DepsError, Result};
30pub use lockfile::{LockFileProvider, ResolvedPackage, ResolvedPackages, ResolvedSource};
31pub use lsp_helpers::{
32    EcosystemFormatter, LineOffsetTable, generate_code_actions as lsp_generate_code_actions,
33    generate_diagnostics as lsp_generate_diagnostics, generate_hover as lsp_generate_hover,
34    generate_inlay_hints as lsp_generate_inlay_hints, is_same_major_minor, position_in_range,
35};
36pub use parser::{DependencyInfo, DependencySource, LoadingState, ManifestParser, ParseResultInfo};
37pub use registry::{Metadata, Registry, Version, find_latest_stable};
38pub use version_matcher::{
39    Pep440Matcher, SemverMatcher, VersionRequirementMatcher, extract_pypi_min_version,
40    normalize_and_parse_version,
41};