Universal Dependency Resolver
Resolve dependencies across 20 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 |
|---|---|
| 20 ecosystems | PyPI, Conda, npm, Crates.io (Rust), Maven (Java), Go Modules, APT (Debian), APK (Alpine), CocoaPods, Homebrew, NuGet, Packagist, RubyGems, Pub (Dart/Flutter), Gradle, Swift, Hex (Elixir), Haskell (Cabal), Docs DB, Custom DB |
| 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 |
| 15 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, Gemfile, composer.json, go.mod |
| 17 CLI commands | serve, check, resolve, lock, scan, graph, verify, list-ecosystems, update, install, completion, why, outdated, diff, search, details, auth |
| 45 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 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
- GitHub — source, issues, releases
- CLI Reference
- Architecture
- API Docs
- Changelog
- License: MIT
Release files for ud-resolver 1.3.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ud_resolver-1.3.3.tar.gz | 246.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ud_resolver-1.3.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 529.2 kB
Release files / ud_resolver-1.3.3.tar.gz
| Download URL | ud_resolver-1.3.3.tar.gz |
|---|---|
| Size | 246.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3791aec18390201f92aa7b0d85689728203145769b07cbc8ffd9a122d9d20625
|
|
BLAKE2b-256 checksum How to use checksums |
aa16f48c539743c5128f28b3eabcabf594c1af793d17dc5c8a3c85cd22c66c3c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 5, 2026.
Transparency logRelease files / ud_resolver-1.3.3-py3-none-any.whl
| Download URL | ud_resolver-1.3.3-py3-none-any.whl |
|---|---|
| Size | 283.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3d3ed9e087b4f58df5979bac1dde346e5de64e1e83ae33e4e45e46069b79b838
|
|
BLAKE2b-256 checksum How to use checksums |
9f6060856a7d13e281718430ab4ca6573a47a03b8e94f100e4357c75b4e00700
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 5, 2026.
Transparency log