SDK Roadmap¶
Current Status¶
| SDK | Status | Package | Notes |
|---|---|---|---|
| CLI | ✅ Complete | ud-resolver on PyPI |
26 commands, full resolution pipeline |
| Python Library | ✅ Complete | backend.core, backend.orchestrator |
Fully importable as a library |
| REST API | ✅ Complete | Bundled in udr serve |
59 endpoints, OpenAPI docs at /api/v1/docs |
| Desktop App | ✅ Complete | Electron + PyInstaller | Cross-platform standalone binary |
| VS Code Extension | ✅ Complete | vscode-extension/ |
13 commands, lock tree view, CVE diagnostics, manifest editing. Extension marketplace publishing pending. |
| JavaScript/TypeScript | 🔮 Planned | Community interest | Wraps REST API |
| Go | 🔮 Planned | Community interest | Wraps REST API |
Python SDK¶
The entire backend is importable as a Python SDK:
# Resolution
from backend.orchestrator.resolve import create_solver, ResolutionResult
from backend.core.data_aggregator import DataAggregator
from backend.core.system_scanner import SystemScanner
aggregator = DataAggregator()
scanner = SystemScanner()
system_info = scanner.scan_all()
# Fetch package data
package_data = aggregator.get_package_info("numpy", "pypi")
# Resolve
solver = create_solver(use_optimization=True, solver_timeout=30000)
result = solver.resolve_dependencies(
packages=[{"name": "numpy", "ecosystem": "pypi", "version": ">=1.20"}],
system_info=system_info,
)
print(result)
# Vulnerability checking
from backend.core.data_aggregator import DataAggregator
aggregator = DataAggregator()
vulns = aggregator.check_vulnerabilities("numpy", "1.24.0", "pypi")
for v in vulns:
print(f"{v['id']}: {v['severity']} - {v['summary']}")
# License checking
from backend.core.license_checker import check_license_compatibility
result = check_license_compatibility("MIT")
print(result)
REST API¶
All functionality is available via the REST API. See API Reference for full documentation.
The OpenAPI schema is auto-generated and available at:
- Swagger UI:
http://localhost:8000/api/v1/docs - Redoc:
http://localhost:8000/api/v1/redoc - Raw schema:
http://localhost:8000/api/v1/openapi.json
Planned SDKs¶
JavaScript/TypeScript and Go SDKs will be created based on community interest. Both would wrap the REST API rather than reimplementing the solver logic. Track progress on the GitHub issues.