Conference Presentation, Keynote
Charlie Marsh: uv: An Extremely Fast Python Package Manager
- UV adoption is projected to continue growing, having already reached 16 million monthly downloads and accounting for over 10% of PyPI requests, while increased speed is expected to shift user workflows toward pre-commit hooks and treat virtual environments as ephemeral due to low recreation costs.
- The development team plans to build a unified stack from scratch, independent of pip, to ensure high confidence in Python tooling where cloned projects run successfully without uncertainty.
- Performance optimizations include a cache design storing fully unzipped archives with hard or reflinked installation, a "range request" strategy for zip files to fetch only central directories and metadata, and "zero copy" serialization to keep deserialization time independent of data size.
- Solver improvements rely on a conflict-driven clause learning algorithm to manage the exponential difficulty of dependency resolution, while a custom version parsing representation avoiding memory allocation is expected to accelerate resolution by three to four times when I/O is minimal.
- To handle complex dependency markers involving Boolean satisfiability, the team intends to implement a marker normalizer based on algebraic decision diagrams.
- Future plans anticipate using the SAT solver in conjunction with specific strategies for Python's lack of multiversion support to mitigate resolution complexity, alongside a goal to minimize, though not fully eliminate, differences in package sets within universal lock files across Windows and macOS platforms.