code-with-zeeshan/universal-dependency-resolver
GitHub: code-with-zeeshan/universal-dependency-resolver
一站式跨生态系统依赖解析与锁定工具,支持 25 个包管理器的统一版本求解、CVE 扫描、SBOM 生成及 CUDA 感知的 GPU 依赖处理。
Stars: 1 | Forks: 0
# 🚀 通用 Dependency Resolver
**一站式解析、锁定和审计跨越 18+ 生态系统(PyPI、npm、Cargo、Conda、Go、Maven、NuGet 等)的依赖项。支持 CUDA 感知的解析、CVE 扫描、SBOM 生成,以及单一的跨生态系统 lock 文件 - 提供 CLI、REST API、桌面应用程序和 VS Code 扩展。**
[](https://pypi.org/project/ud-resolver/)
[](https://pypi.org/project/ud-resolver/)
[](LICENSE)
[](https://github.com/code-with-zeeshan/universal-dependency-resolver/actions/workflows/ci.yml)
[](https://github.com/code-with-zeeshan/universal-dependency-resolver/actions/workflows/build-desktop.yml)
[](https://github.com/code-with-zeeshan/universal-dependency-resolver/tree/main/vscode-extension)
[](https://github.com/code-with-zeeshan/universal-dependency-resolver/actions)
[](https://github.com/code-with-zeeshan/universal-dependency-resolver/actions)
[](https://github.com/code-with-zeeshan/universal-dependency-resolver/actions)
[](https://github.com/code-with-zeeshan/universal-dependency-resolver/actions)
[](https://github.com/code-with-zeeshan/universal-dependency-resolver/issues)
[](https://github.com/code-with-zeeshan/universal-dependency-resolver/commits/main)
## 这是为谁准备的?
| 如果你... | 遇到的问题 | UDR 能做什么 |
|---|---|---|
| 🏗️ **运行多语言 monorepo** | pip + npm + cargo + go — 每个都有自己的 lock 文件、审计工具和版本方案。同一个依赖在不同生态系统中被固定到不同版本?没有工具能发现它。 | 生成一个覆盖所有生态系统的 `udr.lock`。在 CI 中运行 `udr lock --check` 可以在进入生产环境前捕获跨生态系统的版本漂移。 |
| 🧠 **部署带有 GPU 依赖的 ML 模型** | torch + CUDA toolkit + nvidia-* wheels — 选错变体意味着静默回退到 CPU 或崩溃。每个 ML 团队都会在这方面浪费好几天时间。 | 自动检测 CUDA 版本,选择正确的 `torch+cu121` 变体。CUDA 11 与 12 的冲突规则可防止不兼容的组件配对。 |
| 🔒 **负责供应链合规** | 季度审计 = 需要分别运行 `pip-audit` + `npm audit` + `cargo audit` + `go list -m` + `bundler-audit`。 | 针对跨越 **18 个生态系统**的 OSV 运行 `udr check --cve`。运行 `udr sbom` 生成 SPDX/CycloneDX。搞定。 |
```
udr resolve torch@pypi express@npm serde@crates
# ✅ 跨 PyPI、npm 和 Cargo 的兼容版本
# 🎯 支持 CUDA:自动选择 torch 2.1.2+cu121 (GPU)
```
## 🚀 快速开始
```
# 1️⃣ 安装
pip install ud-resolver
# 为了获得全部功能,请安装 extras:
pip install "ud-resolver[z3,pubgrub,system]"
# 2️⃣ 从任何 ecosystem 解析 packages
udr resolve flask>=2.0 react@^18
# 3️⃣ Lock 你的整个项目
udr lock
# 4️⃣ 检查系统兼容性 + CVEs
udr check --cve
# 5️⃣ 启动 API 服务器
udr serve --port 8000
```
## 💎 功能概览
### 🌍 25 个受支持的生态系统(18 个可解析 + 7 个仅查询)
| 可解析 | 可解析(续) | 仅查询(仅版本信息,无 SAT) |
|---|---|---|
| **PyPI** – Python | **CocoaPods** – Swift/ObjC | **Nix** – NixOS |
| **Conda** – 多语言 | **NuGet** – .NET | **Guix** – GNU Guix |
| **npm** – JavaScript | **Packagist** – PHP | **Docker** – Containers |
| **Crates.io** – Rust | **Homebrew** – macOS/Linux | **Helm** – Kubernetes |
| **Maven** – Java | **Hex** – Elixir | **Terraform** – IaC |
| **Go Modules** – Go | **Swift** – Swift | **Vcpkg** – C/C++ |
| **APT** – Debian/Ubuntu | **Haskell** – Cabal | **Conan** – C/C++ |
| **APK** – Alpine | **Pub** – Dart/Flutter | |
| **RubyGems** – Ruby | **Gradle** – Java/Kotlin | |
另外还有 2 个内部注册表(Docs DB、Custom DB),用于系统兼容性增强和本地解析缓存。仅查询的生态系统提供版本信息、manifest 解析、lock 文件解析和导出功能,但不参与 SAT 求解器的依赖遍历(它们的传递依赖不会被自动解析)。
### ⚡ 核心能力
| 功能 | 作用 |
|---|---|
| 🧠 **SAT 求解器解析** | AutoSolver(默认,分析图表 → 根据工作负载选择 Z3/PubGrub/Hybrid),支持每个生态系统隔离、SCC 批量分区以及支持 CUDA 感知的冲突解决。 |
| 🖥️ **系统感知** | 检测 OS、CPU、GPU、CUDA、Python、Node、GCC、Java — 解析过程会自适应你的环境。 |
| 🎮 **GPU 感知** | 当检测到 NVIDIA GPU 时,自动选择 CUDA 变体(例如 `torch 2.1.2+cu121`)。支持 CUDA、ROCm、Intel GPU 和 Metal 后端。 |
| 📤 **15 种导出格式** | 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 |
| 🎛️ **24 个 CLI 命令** | serve, check, resolve, lock, graph, verify, list-ecosystems, update, install, init, migrate, completion, scan, why, outdated, diff, search, sbom, export, details, system-info, auth, index, tools |
| 🌐 **59 个 REST API 端点** | 完整的编程 API,带有自动生成的 Swagger 文档。 |
| 🖥️ **桌面 GUI** | 独立的 Electron 应用程序 — 无需 Python 或 Node.js。 |
| 🌍 **Web UI** | 基于浏览器的单页应用 — lock 文件查看器、CVE 浏览器、依赖图。 |
| 📘 **VS Code 扩展** | 13 个命令 — lock 树查看器、CVE 诊断、manifest 编辑、udr CLI 集成。 |
| 🔒 **Lock 文件** | 可重现的 `udr.lock`,包含完整的系统快照、每个包的完整性哈希以及依赖来源。 |
| 🚀 **零配置** | 默认使用 SQLite、内存缓存,无需 Docker。 |
## 🎬 CLI 实操
```
# 从任何 ecosystem 解析
udr resolve numpy pandas scikit-learn
udr resolve react vue -e npm
udr resolve serde tokio -e crates
udr resolve numpy@pypi express@npm # mixed ecosystems
# Lock 一个项目
udr lock
udr lock --manifest requirements.txt --dry-run # preview only
# 带 CVE 扫描的系统检查
udr check --cve
# ┌────────────────────┬──────────┬──────────┬──────────────────────────────┐
# │ Package │ Severity │ Version │ CVE │
# ├────────────────────┼──────────┼──────────┼──────────────────────────────┤
# │ numpy │ CRITICAL │ 1.21.0 │ CVE-2021-41495 │
# │ django │ HIGH │ 3.2.0 │ CVE-2022-36359 │
# │ lodash │ MODERATE │ 4.17.20 │ CVE-2021-23337 │
# └────────────────────┴──────────┴──────────┴──────────────────────────────┘
# 验证和检查
udr verify # lock file valid?
udr graph flask django # dependency tree
udr why flask # why this version?
# 无需 cloning 即可扫描远程 repos
udr scan --github https://github.com/user/repo
# 生成 SBOM
udr sbom --format spdx --output sbom.json
# 更新和修复 CVEs
udr update flask
udr update --fix-cve # auto-fix known CVEs
# 策略检查和 CI drift
udr check --policy # policy compliance
udr lock --check # CI drift detection (exit 1)
# Supply chain attestation
udr lock --sign # sign lock file (Ed25519)
udr verify --signature # verify signature
# 搜索和详情
udr search numpy --limit 50
udr details react -e npm
```
## 🐍 作为 Python 库使用
```
import asyncio
from backend.core.data_aggregator import DataAggregator
from backend.core.system_scanner import SystemScanner
from backend.orchestrator.resolve import create_solver
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 = create_solver()
result = resolver.resolve_dependencies(
packages=[{"name": "flask", "version": ">=2.0"}],
system_info=system_info,
)
asyncio.run(main())
```
## 🌐 API 服务器
```
udr serve --host 0.0.0.0 --port 8000
```
📖 **交互式文档:** [http://localhost:8000/api/v1/docs](http://localhost:8000/api/v1/docs) (Swagger UI)
完整参考文档请见 [docs/API.md](docs/API.md)。
## 🔄 工作原理
```
flowchart LR
A["👤 Your Request
from registry APIs"] --> C C["🔍 Scan system
OS · GPU · CUDA · Python"] --> D D["🧠 AutoSolver + SAT backends
Per-eco isolation · CUDA-aware
Version clustering"] --> E E["📤 Export / Lock
15 formats · udr.lock"] B -->|"aiohttp"| F["📦 PyPI · npm · Crates · Maven
+ 14 more registries"] C -->|"nvidia-smi"| G["🖥️ NVIDIA · AMD · Apple Silicon"] D -->|"AutoSolver → Z3 / PubGrub / Hybrid"| H["⚡ Prefer newer versions
Resolve CUDA variants
Detect cross-eco conflicts"] style A fill:#2e7d32,color:#fff,stroke:#1b5e20,stroke-width:2px style B fill:#1565c0,color:#fff,stroke:#0d47a1,stroke-width:2px style C fill:#e65100,color:#fff,stroke:#bf360c,stroke-width:2px style D fill:#6a1b9a,color:#fff,stroke:#4a148c,stroke-width:2px style E fill:#00695c,color:#fff,stroke:#004d40,stroke-width:2px ``` 有关详细的架构深入分析,请参阅 [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)。 ## 📊 数据概览 | 指标 | 数值 | |---|---| | ✅ 受支持的生态系统 | **25** (18 个可解析 + 7 个仅查询) | | 🧪 通过的单元测试 | **3681** (+ 96 集成测试 + 77 e2e + 10 wheel + 94 跨生态系统) | | 🎛️ CLI 命令 | **24** | | 🌐 API 端点 | **59** | | 📤 导出格式 | **15** | | 📦 PyPI 下载量 | [](https://pepy.tech/project/ud-resolver) | | 📄 代码量 | [](https://github.com/code-with-zeeshan/universal-dependency-resolver) | | ⭐ Stars | [](https://github.com/code-with-zeeshan/universal-dependency-resolver) | ## 🧩 组件 | 组件 | 是什么 | 获取方式 | 最适用于 | |---|---|---|---| | 🖥️ **CLI** | 带有 24 个命令的终端工具 | `pip install ud-resolver` | CI/CD、脚本、临时操作 | | 📚 **Python 库** | 可导入的 `backend.*` 模块 | `pip install ud-resolver` | 嵌入到其他工具中 | | 🌐 **API Server** | FastAPI REST 服务器 + Swagger UI | `udr serve` | 编程方式访问 | | 🖥️ **桌面应用程序** | 独立的 Electron GUI | [GitHub Releases](https://github.com/code-with-zeeshan/universal-dependency-resolver/releases) | GUI 用户、无需终端 | | 🌍 **Web UI** | 基于浏览器的 SPA(lock 查看器、CVE 浏览器、依赖图) | 打开 `frontend/index.html` 或通过 `udr serve` 启动托管 | 轻量级浏览器访问 | | 📘 **VS Code 扩展** | Lock 树查看器、CVE 诊断、manifest 编辑 | [GitHub Source](https://github.com/code-with-zeeshan/universal-dependency-resolver/tree/main/vscode-extension) 或 `code --install-extension udr-vscode-0.1.0.vsix` | 编辑器内的依赖管理 | 有关详细的对比,请参阅 [docs/COMPONENTS.md](docs/COMPONENTS.md)。 ## 🧪 测试 ``` # 所有单元测试(快速,无网络) python -m pytest tests/unit/ # CLI 端到端(black-box subprocess,真实 registries) python -m pytest tests/e2e/test_cli_realworld.py # Problem statement 场景 python -m pytest tests/e2e/test_problem_statement.py # JSON 输出合规性 python -m pytest tests/e2e/test_json_compliance.py # 集成(SQLite,不需要 Docker) python -m pytest tests/integration/ # 全面(系统感知,跨 ecosystem) python -m pytest tests/test_comprehensive.py # 桌面冒烟测试 cd desktop && node --test tests/ ``` ## 📚 文档 | 指南 | 描述 | |---|---| | 📖 [用户指南](docs/USER_GUIDE.md) | 一站式大全 — 从前置条件到生产部署 | | 🎮 [CLI 参考](docs/CLI.md) | 全部 24 个命令、标志、示例、退出代码 | | 🌐 [API 参考](docs/API.md) | 59 个 REST 端点、请求/响应 schema | | 🏗️ [架构](docs/ARCHITECTURE.md) | 代码库结构、层级、关键决策 | | 🛠️ [开发](docs/DEVELOPMENT.md) | 设置、运行、测试、项目结构 | | 🧩 [组件](docs/COMPONENTS.md) | CLI 对比 Desktop 对比 Library — 哪个适合你 | | ☁️ [部署](docs/DEPLOYMENT.md) | 生产环境部署指南 | | 🔧 [故障排除](docs/TROUBLESHOOTING.md) | 常见问题与解决方案 | | 🤝 [贡献](CONTRIBUTING.md) | 如何参与贡献 | | 🔒 [安全](SECURITY.md) | 安全策略 | ## 💬 让我们联系吧 发现 Bug?🐛 [提交 Issue](https://github.com/code-with-zeeshan/universal-dependency-resolver/issues) 想要新功能?💡 [提出建议](https://github.com/code-with-zeeshan/universal-dependency-resolver/issues) 喜欢这个工具?⭐ [为仓库点 Star](https://github.com/code-with-zeeshan/universal-dependency-resolver) ## 📜 License [MIT](LICENSE) — 个人和商业用途免费。去构建一些了不起的东西吧!🚀
udr resolve flask react"] --> B
B["🌐 Fetch metadatafrom registry APIs"] --> C C["🔍 Scan system
OS · GPU · CUDA · Python"] --> D D["🧠 AutoSolver + SAT backends
Per-eco isolation · CUDA-aware
Version clustering"] --> E E["📤 Export / Lock
15 formats · udr.lock"] B -->|"aiohttp"| F["📦 PyPI · npm · Crates · Maven
+ 14 more registries"] C -->|"nvidia-smi"| G["🖥️ NVIDIA · AMD · Apple Silicon"] D -->|"AutoSolver → Z3 / PubGrub / Hybrid"| H["⚡ Prefer newer versions
Resolve CUDA variants
Detect cross-eco conflicts"] style A fill:#2e7d32,color:#fff,stroke:#1b5e20,stroke-width:2px style B fill:#1565c0,color:#fff,stroke:#0d47a1,stroke-width:2px style C fill:#e65100,color:#fff,stroke:#bf360c,stroke-width:2px style D fill:#6a1b9a,color:#fff,stroke:#4a148c,stroke-width:2px style E fill:#00695c,color:#fff,stroke:#004d40,stroke-width:2px ``` 有关详细的架构深入分析,请参阅 [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)。 ## 📊 数据概览 | 指标 | 数值 | |---|---| | ✅ 受支持的生态系统 | **25** (18 个可解析 + 7 个仅查询) | | 🧪 通过的单元测试 | **3681** (+ 96 集成测试 + 77 e2e + 10 wheel + 94 跨生态系统) | | 🎛️ CLI 命令 | **24** | | 🌐 API 端点 | **59** | | 📤 导出格式 | **15** | | 📦 PyPI 下载量 | [](https://pepy.tech/project/ud-resolver) | | 📄 代码量 | [](https://github.com/code-with-zeeshan/universal-dependency-resolver) | | ⭐ Stars | [](https://github.com/code-with-zeeshan/universal-dependency-resolver) | ## 🧩 组件 | 组件 | 是什么 | 获取方式 | 最适用于 | |---|---|---|---| | 🖥️ **CLI** | 带有 24 个命令的终端工具 | `pip install ud-resolver` | CI/CD、脚本、临时操作 | | 📚 **Python 库** | 可导入的 `backend.*` 模块 | `pip install ud-resolver` | 嵌入到其他工具中 | | 🌐 **API Server** | FastAPI REST 服务器 + Swagger UI | `udr serve` | 编程方式访问 | | 🖥️ **桌面应用程序** | 独立的 Electron GUI | [GitHub Releases](https://github.com/code-with-zeeshan/universal-dependency-resolver/releases) | GUI 用户、无需终端 | | 🌍 **Web UI** | 基于浏览器的 SPA(lock 查看器、CVE 浏览器、依赖图) | 打开 `frontend/index.html` 或通过 `udr serve` 启动托管 | 轻量级浏览器访问 | | 📘 **VS Code 扩展** | Lock 树查看器、CVE 诊断、manifest 编辑 | [GitHub Source](https://github.com/code-with-zeeshan/universal-dependency-resolver/tree/main/vscode-extension) 或 `code --install-extension udr-vscode-0.1.0.vsix` | 编辑器内的依赖管理 | 有关详细的对比,请参阅 [docs/COMPONENTS.md](docs/COMPONENTS.md)。 ## 🧪 测试 ``` # 所有单元测试(快速,无网络) python -m pytest tests/unit/ # CLI 端到端(black-box subprocess,真实 registries) python -m pytest tests/e2e/test_cli_realworld.py # Problem statement 场景 python -m pytest tests/e2e/test_problem_statement.py # JSON 输出合规性 python -m pytest tests/e2e/test_json_compliance.py # 集成(SQLite,不需要 Docker) python -m pytest tests/integration/ # 全面(系统感知,跨 ecosystem) python -m pytest tests/test_comprehensive.py # 桌面冒烟测试 cd desktop && node --test tests/ ``` ## 📚 文档 | 指南 | 描述 | |---|---| | 📖 [用户指南](docs/USER_GUIDE.md) | 一站式大全 — 从前置条件到生产部署 | | 🎮 [CLI 参考](docs/CLI.md) | 全部 24 个命令、标志、示例、退出代码 | | 🌐 [API 参考](docs/API.md) | 59 个 REST 端点、请求/响应 schema | | 🏗️ [架构](docs/ARCHITECTURE.md) | 代码库结构、层级、关键决策 | | 🛠️ [开发](docs/DEVELOPMENT.md) | 设置、运行、测试、项目结构 | | 🧩 [组件](docs/COMPONENTS.md) | CLI 对比 Desktop 对比 Library — 哪个适合你 | | ☁️ [部署](docs/DEPLOYMENT.md) | 生产环境部署指南 | | 🔧 [故障排除](docs/TROUBLESHOOTING.md) | 常见问题与解决方案 | | 🤝 [贡献](CONTRIBUTING.md) | 如何参与贡献 | | 🔒 [安全](SECURITY.md) | 安全策略 | ## 💬 让我们联系吧 发现 Bug?🐛 [提交 Issue](https://github.com/code-with-zeeshan/universal-dependency-resolver/issues) 想要新功能?💡 [提出建议](https://github.com/code-with-zeeshan/universal-dependency-resolver/issues) 喜欢这个工具?⭐ [为仓库点 Star](https://github.com/code-with-zeeshan/universal-dependency-resolver) ## 📜 License [MIT](LICENSE) — 个人和商业用途免费。去构建一些了不起的东西吧!🚀
标签:LLM防护, Python, REST API, SBOM生成, 依赖管理, 无后门, 网络测绘, 跨生态系统, 逆向工具