vx-dependency 0.3.0

Dependency resolution and management for vx tools
Documentation

vx-dependency

Advanced dependency resolution and management system for vx tools.

This crate provides intelligent dependency resolution with support for:

  • Multi-layer dependency chains
  • Circular dependency detection
  • Version constraint resolution
  • Parallel dependency installation
  • Caching and performance optimization

Example

use vx_dependency::{DependencyResolver, ToolSpec, DependencySpec};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut resolver = DependencyResolver::new();
    
    // Register tools and their dependencies
    resolver.register_tool(ToolSpec {
        name: "yarn".to_string(),
        dependencies: vec![
            DependencySpec::required("node", ">=16.0.0")
        ],
        ..Default::default()
    });
    
    // Resolve dependencies for yarn
    let resolution = resolver.resolve("yarn").await?;
    println!("Install order: {:?}", resolution.install_order);
    
    Ok(())
}