C.W.K.
Stream
Lesson 01 of 05 · published

uv — Why It's Eating Python's Tooling

~11 min · uv, overview, python, rust

Level 0Newbie
0 XP0/55 lessons0/16 achievements
0/80 XP to next level80 XP to go0% complete

uv is an extremely fast, all-in-one Python package manager written in Rust by Astral — the same team that made ruff, the formatter that took over Python in 18 months. uv is doing the same thing to package management.

uv replaces an absurd list of tools in one binary: pip (install), venv (virtual environments), pip-tools (lockfiles), pyenv (Python version management), pipx (run tools without installing), and twine (publish to PyPI). All of those go away. You install uv. uv does the rest.

The speed is the headline. 10-100x faster than pip — and up to 115x faster with a warm cache. Installing JupyterLab takes 21 seconds with pip and ~2.6 seconds with uv. Creating a virtual environment is 8x faster. The speed comes from Rust parallelism, a CDCL solver instead of pip's resolver, HTTP range requests for metadata (downloads only what it needs), hard-linked package cache (instant unpacking), and zero Python startup overhead.

uv brings true reproducibility. uv.lock is a real, fully-pinned lockfile — every transitive dep, every wheel hash. It's the Python equivalent of package-lock.json or Cargo.lock. Combined with uv python install 3.13 (managed Python versions), you finally have uv sync = 'install the exact same Python and packages on every machine'.

And it's drop-in compatible with pip. uv pip install requests works exactly like pip install requests — same flags, same behavior. You can adopt uv into a pip-based project with zero friction; new projects use the modern uv add + uv.lock workflow.

Code

What uv replaces·text
  Old stack                     New stack
  -----------------------       ---------
  pip install              ───→  uv pip install   (or uv add)
  python -m venv .venv     ───→  uv venv          (or auto: uv add)
  pip-compile              ───→  uv lock
  pyenv install 3.13       ───→  uv python install 3.13
  pipx run cowsay          ───→  uvx cowsay
  twine upload dist/*      ───→  uv publish

  Six tools → one binary. Written in Rust. 10-100x faster.

External links

Exercise

Time a real install. With pip in a venv, 'time pip install jupyterlab'. Then 'time uv pip install jupyterlab' (after 'pip uninstall jupyterlab'). The speed difference is the lesson. If you've been waiting on pip your whole career, this is the moment that justifies switching.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.