Uv
uv is a high-performance Python package manager and project build tool designed to handle dependency resolution, virtual environment orchestration, and Python interpreter management. It functions as a comprehensive workspace orchestrator, enabling developers to manage complex, multi-package repositories and ensure reproducible builds across different platforms.
The tool distinguishes itself through its use of a global, content-addressable cache and hard-link-based environment provisioning, which allow for near-instant environment creation and minimal disk usage. It employs a high-performance solver to satisfy complex dependency graphs and supports ephemeral script execution, allowing users to run standalone Python scripts with ad-hoc dependencies without manual setup.
Beyond core package management, the project provides a unified command-line interface that integrates with CI/CD pipelines and supports common workflows like building distributions and managing private package indexes. It maintains compatibility with standard tools, offering a drop-in replacement for common environment and package management commands.
Comprehensive documentation is available on the project website, covering installation guides, command references, and configuration settings for various development and production environments.
Features
- Dependency Management - Dependency Management — a named example documented in this learning resource.
- Python Dependency Managers - Managing complex project dependencies, ensuring reproducible builds, and resolving version conflicts across multiple environments and platforms efficiently.
- Python Package Manager Interfaces - Projects help manage Python code spanning multiple files. Tip Looking for an introduction to creating a project with uv? See the [projects guide](https://docs.astral.sh/uv/guides/projects/) first. Working on projects is
- Package Managers - uv provides a drop-in replacement for common `pip`, `pip-tools`, and `virtualenv` commands. These commands work directly with the virtual environment, in contrast to uv's primary interfaces where the virtual environment
- Python Package Managers - A high-performance tool for managing project dependencies, virtual environments, and package installations with rapid resolution and installation speeds.
- Project Management Tools - Projects help manage Python code spanning multiple files. Tip Looking for an introduction to creating a project with uv? See the [projects guide](https://docs.astral.sh/uv/guides/projects/) first. Working on projects is
- Monorepo Managers - Coordinating multiple interconnected Python packages within a single repository to simplify development, testing, and deployment of complex systems.
- Dependency Declarations - uv provides a drop-in replacement for common `pip`, `pip-tools`, and `virtualenv` commands. These commands work directly with the virtual environment, in contrast to uv's primary interfaces where the virtual environment
- Dependency Resolvers - Projects help manage Python code spanning multiple files. Tip Looking for an introduction to creating a project with uv? See the [projects guide](https://docs.astral.sh/uv/guides/projects/) first. Working on projects is
- Lockfile Generators - Locking and Syncing — a named example documented in this learning resource.
- Project Management - Projects help manage Python code spanning multiple files. Tip Looking for an introduction to creating a project with uv? See the [projects guide](https://docs.astral.sh/uv/guides/projects/) first. Working on projects is
- Virtual Environments - uv provides a drop-in replacement for common `pip`, `pip-tools`, and `virtualenv` commands. These commands work directly with the virtual environment, in contrast to uv's primary interfaces where the virtual environment
- Workspace Orchestrators - A comprehensive workspace orchestrator that manages multi-package repositories, dependency locking, and the creation of distributable Python artifacts.
- Python Version Managers - A runtime-agnostic tool that handles the installation and switching of multiple Python interpreter versions across different development environments.
- Python Runtime Managers - Check out one of the core guides to get started: - [Installing Python versions](https://docs.astral.sh/uv/guides/install-python/) - [Running scripts and declaring dependencies](https://docs.astral.sh/uv/guides/scripts/)
- Python Runtimes - - [Versioning](https://docs.astral.sh/uv/reference/policies/versioning/) - [Platform support](https://docs.astral.sh/uv/reference/policies/platforms/) - [Python support](https://docs.astral.sh/uv/reference/policies/pytho
- Package Management Toolchains - Accelerating CI/CD pipelines and local development cycles by replacing slow, legacy package management tools with high-speed, optimized alternatives.
- Virtual Environment Managers - uv provides a drop-in replacement for common `pip`, `pip-tools`, and `virtualenv` commands. These commands work directly with the virtual environment, in contrast to uv's primary interfaces where the virtual environment
- Runtime Distributions - Downloads and manages isolated Python interpreter distributions to ensure consistent execution environments regardless of the host system's pre-installed software.
- Content-Addressable Caches - Stores package artifacts in a global, deduplicated content-addressable store to minimize redundant downloads and disk usage across projects.
- Command Line Interfaces - A unified interface for executing scripts, managing environment configurations, and integrating with CI/CD pipelines for automated software delivery.
- Workspace Metadata Aggregators - Maintains a unified view of multi-package repositories by resolving internal dependencies and shared configurations across a hierarchical project structure.
- Hard-Link Environment Provisioning - Creates virtual environments by hard-linking files from a global cache, enabling near-instant environment creation without duplicating binary data.
- Environment Managers - Automating the creation, isolation, and management of virtual environments and Python runtimes for consistent development and production workflows.
- Ephemeral Execution - Running standalone Python scripts with ad-hoc dependencies instantly, without the overhead of manual environment setup or global package installation.
- CLI Interfaces - The reference section provides information about specific parts of uv: - [Commands](https://docs.astral.sh/uv/reference/cli/): A reference for uv's command line interface. - [Settings](https://docs.astral.sh/uv/reference
- Compatibility Layers - uv provides a drop-in replacement for common `pip`, `pip-tools`, and `virtualenv` commands. These commands work directly with the virtual environment, in contrast to uv's primary interfaces where the virtual environment
- Credential Management - Authentication is required when working with private repositories or package indexes. Learn more about authentication in uv: - [Using the `uv auth` CLI](https://docs.astral.sh/uv/concepts/authentication/cli/) - [HTTP aut
- Build Systems - Building Distributions — a named example documented in this learning resource.
- Parallel Network I/O - Utilizes asynchronous request handling to fetch package metadata and artifacts concurrently, significantly reducing the latency of large dependency installations.
- Workspaces - Workspaces — a named example documented in this learning resource.
- Jupyter Integrations - Check out one of the core guides to get started: - [Installing Python versions](https://docs.astral.sh/uv/guides/install-python/) - [Running scripts and declaring dependencies](https://docs.astral.sh/uv/guides/scripts/)
- Tool Runners - Projects help manage Python code spanning multiple files. Tip Looking for an introduction to creating a project with uv? See the [projects guide](https://docs.astral.sh/uv/guides/projects/) first. Working on projects is
- Environment Inspection Tools - uv provides a drop-in replacement for common `pip`, `pip-tools`, and `virtualenv` commands. These commands work directly with the virtual environment, in contrast to uv's primary interfaces where the virtual environment
- Installer Options - The reference section provides information about specific parts of uv: - [Commands](https://docs.astral.sh/uv/reference/cli/): A reference for uv's command line interface. - [Settings](https://docs.astral.sh/uv/reference
- Workspace Metadata - The internals section provides details about uv's internal components and implementation details. - [Resolver](https://docs.astral.sh/uv/reference/internals/resolver/) - [Workspace Metadata](https://docs.astral.sh/uv/ref
- GitHub Actions - Check out one of the core guides to get started: - [Installing Python versions](https://docs.astral.sh/uv/guides/install-python/) - [Running scripts and declaring dependencies](https://docs.astral.sh/uv/guides/scripts/)