What it is
uv is Astral’s Python package and project tool written in Rust. It covers tasks that were often split across `pip`, `pip-tools`, `venv`, `pipx`, `poetry`, `pyenv`, and scripts.
The project aims to speed up and simplify everyday Python work: create a project, lock dependencies, install them, run a script in an isolated environment, install a command-line tool, or choose a Python version.
What is inside and how it is used
The repository contains Rust code for the resolver, installer, project commands, lock files, tool execution, and Python version installation. The documentation presents separate scenarios: projects, scripts, tools, and Python versions.
A typical flow is to run `uv init`, add dependencies, commit the lock file, and use `uv run` for commands. For one-off tools, `uvx` runs them without polluting the global environment.
Basic project loop
These commands show uv creating a project, adding a dependency, and running code inside the managed environment.
uv init app
cd app
uv add requests
uv run python -c "import requests; print(requests.__version__)"
Strengths
The strength is speed and a unified model. uv is especially noticeable in CI, large projects, and teams where dependency installation is repeated many times.
Limits
The limitation is migration. The Python ecosystem already has many tools, and not every project is ready to change its process. Lock files, internal mirrors, CI, package publishing, and team expectations should be checked first.