uv
FreeOne tool replacing pip, poetry, pyenv and virtualenv
A Python package and project manager written in Rust that folds the jobs of pip, pip-tools, pipx, poetry, pyenv, twine and virtualenv into a single command. Dependency installs run 10 to 100 times faster than pip, and it manages downloading and switching Python versions too. Built by Astral, the team behind Ruff.
Why we picked it
Dual-licensed Apache-2.0 and MIT, 89,600 stars.
Python's toolchain has long been a set of single-purpose pieces bolted together: pyenv for versions, virtualenv for environments, pip to install, pip-tools to lock, poetry for projects, pipx for CLI tools. Each is installed and learned separately, and when something breaks you first have to work out which layer failed. uv collapses all of it into one binary.
Speed is the most immediate difference — the project claims 10 to 100 times faster than pip. In practice, a project with several hundred dependencies moves from "go make coffee" to done before you blink, achieved through a global cache and parallel resolution. The savings are most visible in CI.
It also takes over the interpreter itself: uv python install 3.13 fetches a version directly, with
no pyenv and no polluted system Python. uv run script.py builds a temporary environment from the
dependencies declared in the script header and runs it, so single-file scripts no longer start with
creating a venv.
To be clear about:
- This is an open-source project from a venture-funded company. Astral has taken investment; the tools are currently all open source and free, and the stated commercial path is paid enterprise services rather than charging for these tools. The licences are Apache-2.0 and MIT, so released versions cannot be taken back, but the background is worth knowing.
- The ecosystem is still mid-migration, and a few older projects have build flows that do not fully cooperate. Falling back to pip usually works around the odd case.