uv: An extremely fast Python package and project manager, written in Rust

Performance and Overall Reception

  • Many users describe uv as “confusingly fast” compared to pip, poetry, and pipenv; first runs often feel like nothing happened because they complete almost instantly.
  • Reported wins include: CI pipelines dropping by ~1 minute, Docker dependency installs going from tens of seconds to a few seconds, and making iteration on large dependency graphs feasible again.
  • Several people who were long‑time pip/venv, poetry, or conda users say they’ve switched “for everything” and won’t go back, especially in ML and data‑science workflows.

Features and Workflows People Like

  • uv run and uv add plus automatic venv management remove most explicit virtualenv handling; “just works” is a recurring phrase.
  • PEP 723 support and --script shebang patterns are heavily praised for single-file tools and “one‑shot” scripts; people use them with notebooks, app‑like scripts, and LLM‑generated tools.
  • uvx / uv tool is appreciated as a faster, simpler replacement for pipx, though one user calls it a “foot‑gun” due to confusing behavior when plugins/deps aren’t specified correctly.
  • Good support for pyproject.toml, lockfiles, and multiple interpreters makes it attractive for Docker, shared servers, and lab environments.

Why It’s Fast (As Discussed)

  • Speed is attributed less to “Rust magic” and more to:
    • Smarter dependency resolution (SAT / PubGrub‑style solver).
    • Aggressive caching plus hardlinks/CoW so multiple envs share unpacked wheels.
    • Downloading only ZIP metadata via HTTP range requests before fetching full artifacts.
    • Binary, zero‑copy metadata formats and micro‑optimizations.
  • There’s debate over how much is language vs. algorithms; consensus: Python tools could adopt some of these tricks but likely won’t reach the same speed envelope.

Ecosystem Fit and Comparisons

  • uv mostly follows modern Python packaging PEPs and venv semantics, so it’s a drop‑in for many pip workflows and interoperates with other tools.
  • Some see uv as “just” a performance upgrade; others emphasize that hiding venv details and unifying workflows (build, publish, scripts, tools) is equally important.
  • Comparisons arise with poetry, pip‑tools, conda/micromamba, pixi, pants, mise, and Docker; several people now pair uv with conda/micromamba only when non‑PyPI or system‑level binaries are needed.

Concerns, Limitations, and Rough Edges

  • Missing or awkward pieces called out:
    • No simple “bump everything in pyproject.toml” command yet (workarounds and third‑party uv-bump exist).
    • Desire for better first‑time docs that don’t assume familiarity with pip/old tools.
    • Centralized venv storage still incomplete; some rely on env vars and wrapper scripts.
    • Sticky --no-binary semantics: environment variable and pyproject settings exist, but one user argues this should be more central and explicit.
    • Reports of too‑aggressive parallel downloads on very small machines and running out of file descriptors on large projects.
  • A few find uv’s single global dependency graph for workspaces risky (easy to create undeclared cross‑package deps), preferring more segmented approaches for complex multi‑package repos.

Business Model and Trust

  • Astral is VC‑funded and currently pre‑revenue; stated strategy (per linked comment) is to keep core tools free/OSS and sell complementary enterprise offerings (e.g., private registries).
  • Some worry about ecosystem “capture” and eventual lock‑in or per‑seat pricing; others point to the Apache/MIT licensing and note that forking or switching back to pip/other tools would remain possible.