Uv: Python packaging in Rust
A new Rust-based Python package manager called uv aims to be a drop-in, much faster replacement for pip and pip-tools, with ambitions to grow into a “Cargo for Python”-style, single-binary tool that also manages virtual environments and interpreters. Commenters see its speed and strong standards compatibility as a major quality-of-life improvement over today’s fragmented Python packaging landscape, but debate missing features like platform-agnostic lockfiles, editable workflows, and robust handling of native binaries. Alongside enthusiasm rooted in the success of Ruff, there is notable concern about long‑term sustainability, the role of the Python Software Foundation in choosing “one true way,” and the risks of a VC-backed company becoming critical infrastructure for the ecosystem.
Overall sentiment
- Many are enthusiastic, citing strong experiences with Ruff and excitement for a fast, Rust-based “pip replacement.”
- Others are skeptical, seeing uv as “yet another Python package manager” that could deepen fragmentation unless it becomes a de facto standard.
Python packaging complexity & desire for a standard
- Several comments lament the confusing ecosystem: venvs, pip, pipx, Poetry, Conda, etc., especially for beginners.
- Multiple people want an official, opinionated workflow endorsed on python.org; frustration that core governance avoids “picking a winner.”
uv vs existing tools (pip, pip-tools, Poetry, Conda, Pixi, Hatch, Rye)
- uv is framed as compatible with pip/pip-tools workflows and integrated with Rye; some find the Rye→uv transition odd but accept explanations.
- Comparisons to Pixi, Hatch, and Conda/mamba: some wish efforts were unified; conda’s strengths with complex native deps are noted.
- Some tried uv and found incompatibilities (e.g., missing
--upgrade,list -o), questioning “drop-in replacement” claims.
Features, design choices, and limitations
- Praised: fast dependency resolution, lowest-version resolution mode, targeting arbitrary Python versions, editable installs for local dirs, Git/URL installs (but not editable Git URLs).
- Current limitation: no platform-agnostic lockfile; maintainers say it’s intentional for v1 and on the roadmap.
- Handling of pre-releases is conservative: only first-party deps with explicit markers or a global toggle; no transitive pre-releases yet.
Performance
- Multiple anecdotal benchmarks: uv often 2–4× faster than pip on cold installs and dramatically faster with a warm cache.
- Users compare this to npm→Yarn/Bun speed jumps and see it as a major quality-of-life improvement.
Production, workflows, and environment management
- Questions about “dev vs prod”: some expect multi-stage builds where uv lives only in the build stage.
- Strong interest in making Python version installation as seamless as rustup; this is said to be on the roadmap.
Lockfiles & cross-platform issues
- Debate over platform-specific vs platform-agnostic lockfiles. Some call non-portable files a deal-breaker; others note edge cases like PyTorch and new Python releases.
- Poetry/PDM-style lockfiles that enumerate all wheels and transitive deps across platforms are cited as a desired target.
Security & correctness
- One commenter highlights lack of visible focus on supply-chain security and the risk of code execution at install time; others link to prior examples of this in pip.
Governance, funding, and ecosystem risk
- Concerns about a VC-backed company becoming a critical ecosystem dependency; comparisons to npm and worries about “embrace, extend, extinguish.”
- Mitigating points: permissive licensing allows for forking; some argue faster, better tools are already a large net positive.
- Broader criticism that Python’s leadership underinvests in packaging and leaves too much to under-resourced volunteers.
Rust vs Python implementation
- Rust is seen as key to speed and easy distribution as a single binary, and helpful for bootstrapping Python itself.
- Some view the reliance on Rust as excluding parts of the Python community from contributing; others note most users never hack on tooling anyway.