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 13 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 + Redis + Celery support
[monitoring] OpenTelemetry, Sentry, Prometheus instrumentation
[all] Everything above

Features

Capability Detail
13 ecosystems PyPI, npm, Cargo, Go, Conda, Maven, NuGet, RubyGems, Packagist, Homebrew, Debian APT, Alpine APK, CocoaPods
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
10 CLI commands serve, check, resolve, info, lock, scan, graph, verify, list-ecosystems, update
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.0.tar.gz (199.6 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.0-py3-none-any.whl (236.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ud_resolver-1.3.0.tar.gz
  • Upload date:
  • Size: 199.6 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.0.tar.gz
Algorithm Hash digest
SHA256 cb92cec3f1a7da4b9c54f0613602b6b987100208199d200978fb85d4f25abc4b
MD5 f737e38d673eb21aa42b125e29f19e38
BLAKE2b-256 3b35c438f6b68dd9a3ce3a96c84556b210397b77ff34619f61880decc255a44d

See more details on using hashes here.

Provenance

The following attestation bundles were made for ud_resolver-1.3.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: ud_resolver-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 236.4 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9f3922c004604aaf5f70b036c63538ddc7e7aa98aa7f56fa612c400638f1287d
MD5 edb8e679731eae39fdbb18d3423e5d67
BLAKE2b-256 4bb8de5919d7b6c2398c10ad407b4efe8a06164cce49b814de885cba1aa70761

See more details on using hashes here.

Provenance

The following attestation bundles were made for ud_resolver-1.3.0-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