Overview of PubGrub
devPubGrub is a high-performance version resolution algorithm designed to find a set of packages and versions that satisfy all constraints of a set of packages and their transitive dependencies. It is implemented in Rust and is highly flexible, allowing users to customize:
- Package types: Supports generic package types, including virtual packages.
- Version formats: Generic over the version format and version set used.
- Prioritization: Users can control package and version prioritization (e.g., solving for highest or lowest versions).
- Error rendering: Error message output can be customized.
This implementation is used by tools like uv and is intended as a replacement for Cargo's solver.