newsfilter.io
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.