Skip to main content

Cross-ecosystem dependency resolver — PyPI, npm, Cargo, Conda, Maven, Go, and more

Project description

Universal Dependency Resolver

PyPI version Python versions License CI

Resolve dependencies across 14 ecosystems — detect conflicts, check system compatibility, and export to any format.

# From any ecosystem, resolve together
udr resolve flask>=2.0 torch@pypi react@^18

# Lock your project's dependencies
udr lock

# Check system compatibility
udr check

# Start the API server
udr serve --port 8000

Install

pip install ud-resolver

Optional extras

Extra What it adds
[system] GPU & system scanning (psutil, pynvml, cpuinfo)
[postgres] PostgreSQL support
[monitoring] OpenTelemetry, Sentry, Prometheus instrumentation
[all] Everything above

Features

Capability Detail
14 ecosystems PyPI, Conda, npm, Crates.io (Rust), Maven (Java), Go Modules, APT (Debian), APK (Alpine), CocoaPods, Homebrew, NuGet, Packagist, RubyGems, Pub (Dart/Flutter)
SAT-solver resolution Z3-based conflict resolver handles complex cross-ecosystem version constraints
System-aware Detects OS, CPU, GPU, CUDA, Python, Node.js, GCC, Java — resolution adapts to your environment
GPU-aware Automatically selects CUDA variants (e.g. torch 2.1.2+cu121) when NVIDIA GPU detected
12 export formats requirements.txt, package.json, Dockerfile, docker-compose.yml, pyproject.toml, environment.yml, Cargo.toml, build.gradle, pom.xml, CMakeLists.txt, install.sh, install.bat
13 CLI commands serve, check, resolve, info, lock, scan, graph, verify, list-ecosystems, update, install, restore, completion
24 REST API endpoints Full programmatic API with OpenAPI docs
Desktop GUI Standalone Electron app — no Python or Node.js needed
Zero config SQLite by default, in-memory cache, no Docker required
Lock file Reproducible udr-lock.json with full system snapshot

Quick Start

# Resolve cross-ecosystem packages
udr resolve numpy pandas scikit-learn
udr resolve react vue -e npm
udr resolve serde tokio -e crates

# Lock a project's dependencies
udr lock
udr lock --manifest requirements.txt --dry-run

# Validate lock file
udr verify

# Show dependency tree
udr graph flask django

# Scan a GitHub repo without cloning
udr scan --github https://github.com/user/repo

# System info
udr check
udr info

# List all supported ecosystems
udr list-ecosystems

Use as a Python Library

import asyncio
from backend.core.data_aggregator import DataAggregator
from backend.core.conflict_resolver import ConflictResolver
from backend.core.system_scanner import SystemScanner

async def main():
    scanner = SystemScanner()
    system_info = await scanner.scan_all()

    aggregator = DataAggregator()
    info = await aggregator.get_package_info(
        "torch", ecosystem="pypi",
        include_dependencies=True, include_versions=True,
    )

    resolver = ConflictResolver()
    result = resolver.resolve(
        [{"name": "flask", "version": ">=2.0"}],
        system_info=system_info,
    )

asyncio.run(main())

How It Works

Your request ──► Fetch metadata from registry APIs
                      │
                      ▼
              Scan target system (OS, GPU, CUDA, runtimes)
                      │
                      ▼
              Resolve conflicts with Z3 SAT solver
                      │
                      ▼
              Export to 12 formats or write lock file

Links

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ud_resolver-1.3.1.tar.gz (201.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ud_resolver-1.3.1-py3-none-any.whl (238.0 kB view details)

Uploaded Python 3

File details

Details for the file ud_resolver-1.3.1.tar.gz.

File metadata

  • Download URL: ud_resolver-1.3.1.tar.gz
  • Upload date:
  • Size: 201.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ud_resolver-1.3.1.tar.gz
Algorithm Hash digest
SHA256 441d2506bfe0386a37f0a0535834adf0d5b0f8ed31a728b1520a1ec6d7374034
MD5 81c60185ce32264e28db7065cd6f933b
BLAKE2b-256 8d26bd57e60cfc015ba0bb04e36aeb3317c2e504e5928e1d555fc9a6537babac

See more details on using hashes here.

Provenance

The following attestation bundles were made for ud_resolver-1.3.1.tar.gz:

Publisher: publish.yml on code-with-zeeshan/universal-dependency-resolver

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ud_resolver-1.3.1-py3-none-any.whl.

File metadata

  • Download URL: ud_resolver-1.3.1-py3-none-any.whl
  • Upload date:
  • Size: 238.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ud_resolver-1.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b914540e7a55d6c8f46aab4ef1a0fc5aa9c4cac8daf216f0a2dd581e5aca50f3
MD5 445b75ba3c64597dbc9889dd9426e195
BLAKE2b-256 bdf7312cd6968a0d0b40e8d23d5521f1cceff72d54cbb9241b368efc0674cb68

See more details on using hashes here.

Provenance

The following attestation bundles were made for ud_resolver-1.3.1-py3-none-any.whl:

Publisher: publish.yml on code-with-zeeshan/universal-dependency-resolver

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page