uv
In-depth entryby Astral · CLI tool · also known as astral uv
Rust-based Python package and project manager from Astral that replaces pip, venv, pip-tools and pyenv with one command-line tool
Overview
uv is a command-line package and project manager for Python, developed by Astral, the company behind the Ruff linter. Written in Rust and distributed as a single binary, it consolidates functions that previously required several tools: installing packages, creating virtual environments, resolving and locking dependencies, downloading Python interpreters, and running scripts with inline dependency metadata.
In project mode, uv reads pyproject.toml, writes a cross-platform uv.lock, and keeps a .venv synchronized with it; uv run executes commands inside that environment without manual activation. In tool mode, uvx runs command-line utilities in throwaway environments, similar to pipx. A pip-compatible interface (uv pip) eases migration for teams with existing requirements files. Interpreter management downloads standalone CPython builds on demand, so a fresh machine can go from zero to a working environment with one command.
uv fits research and cluster workflows where many projects with different interpreter versions coexist and environments must be rebuilt reproducibly on other machines. Its global cache deduplicates packages across environments, which matters on hosts with many projects.
Caveats: uv is still evolving quickly and some behaviors (lock file format, workspace features) change between minor releases; it does not manage non-Python dependencies the way conda does; and because it installs standalone interpreter builds, system-integrated Pythons from Homebrew or the OS remain separate unless explicitly selected.
Capabilities
- Dependency resolution with a cross-platform lock file
- Virtual environment creation and automatic synchronization
- Python interpreter download and version management
- pip-compatible command interface for migration
- Run tools in isolated environments (uvx)
- Script execution with inline dependency metadata (PEP 723)
- Workspaces for multi-package repositories
- Build and publish packages to PyPI
Typical workflows
- Initialize a project, add dependencies and commit the lock file
- Reproduce an environment on a cluster node with uv sync
- Run one-off CLI tools without polluting global site-packages
- Pin a specific interpreter version per project
Strengths
- Single binary with no Python prerequisite
- Fast resolution and installs thanks to a global cache
- One tool covering the whole environment lifecycle
- Dual MIT/Apache-2.0 license
Limitations
- Rapid release cadence; some features still change
- Does not manage non-Python (system) dependencies
- Standalone interpreters are separate from system or Homebrew Pythons
- Lock file is uv-specific and not yet a universal standard
Prerequisites
- macOS, Linux or Windows; installer script, Homebrew or pipx
Who it is for
- Python developers and data scientists
- Teams maintaining many Python projects
- Cluster operators reproducing environments across nodes
Alternatives & comparison
The Python interpreter ships pip and venv, which cover installation and isolation but not locking, interpreter management or tool isolation; uv layers those on top while staying compatible with the same packaging standards. Homebrew installs interpreters and some Python applications at the system level but does not manage per-project dependencies; many setups use Homebrew for the base tooling and uv for project environments.
- Homebrew
Community-maintained package manager for macOS and Linux that installs command-line tools (formulae) and desktop apps (casks) from the terminal
Open sourceOpen source - Python
General-purpose, dynamically typed programming language with a large standard library and the dominant ecosystem for data science and machine learning
Open sourceOpen source
Sources & verification
Primary sources consulted for this record. Claims are tied to the fields each source supports; the automated link checker re-verifies every URL on a schedule.
- Licensehttps://github.com/astral-sh/uv/blob/main/LICENSE-MITchecked Nov 1, 2026
Supports: license_spdx
Repository also carries LICENSE-APACHE; dual licensed
- Official sitechecked Nov 1, 2026
- Official sitechecked Nov 1, 2026
- Repositorychecked Nov 1, 2026
- Confidence
- High
- Reviewed
- Nov 1, 2026
- Links
- Verified · Nov 2, 2026
Spotted an error?
More in Programming languages & runtimes
Node.js
OpenJS Foundation · Programming languages & runtimes
Server-side JavaScript runtime built on the V8 engine, governed by the OpenJS Foundation, with npm as its package ecosystem
Swift
Apple Inc. · Swift & SwiftUI development
Apple's compiled, memory-safe, multi-paradigm language for Apple platforms, Linux, Windows and embedded targets, developed in the open at swift.org
TypeScript
Microsoft · Programming languages & runtimes
Statically typed superset of JavaScript from Microsoft that compiles to plain JavaScript and powers editor tooling across the web ecosystem
Lean
Lean FRO · Mathematical & statistical computing
Open-source functional programming language and interactive theorem prover with dependent types, the Mathlib mathematics library and VS Code tooling, stewarded by the Lean FRO
Bun
Oven · Programming languages & runtimes
All-in-one JavaScript and TypeScript runtime, package manager, bundler and test runner built on JavaScriptCore by Oven
Rust
Rust Foundation / Rust Project · Programming languages & runtimes
Compiled systems programming language with ownership-based memory safety, the Cargo build tool and no garbage collector