uv vs Poetry
A practical comparison of uv, Astral's Rust-based all-in-one Python tool, against Poetry, the established project and dependency manager, covering speed, lockfiles, publishing workflow, and migration cost.
Quick Answer
uv is dramatically faster and replaces pip, virtualenv, pyenv, and pipx with a single binary, which is why most new Python projects start there in 2026. Poetry remains the smoother path for publishing libraries to PyPI and is entirely fine to stay on for existing projects.
Reviewed by TechLogHub Engineering Team. Last updated October 14, 2026. Updated for OpenAI's March 2026 acquisition of Astral, current package manager shootout benchmarks, and uv's expanded publishing workflow.
| Feature | ||
|---|---|---|
| Implementation Language | Rust | Python |
| What It Manages | Packages, venvs, Python versions, tools, project scaffolding | Packages, venvs, build and publish |
| Lockfile | uv.lock, deterministic and cross-platform | poetry.lock, deterministic |
| Config File | pyproject.toml | pyproject.toml |
| Cold Install Speed | Cold install from lockfile in roughly 3 seconds on a Sentry-sized dependency set | Cold install from lockfile in roughly 11 seconds on the same corpus |
| PyPI Publishing | Supported, still maturing relative to Poetry | Mature, first-class build and publish workflow |
| License | MIT | MIT |
| Maintained By | Astral (acquired by OpenAI, March 2026) | Community / Poetry maintainers |
uv
A Rust-based, single-binary Python package and project manager from Astral that consolidates dependency resolution, virtual environments, Python version management, and tool installation.
Pros
- Order-of-magnitude faster than the alternatives — cold installs in seconds, not tens of seconds
- Replaces pip, virtualenv, pyenv, pip-tools, and pipx with one tool
- Single static binary with no Python bootstrap dependency
- pip-compatible mode makes incremental migration low-risk
- Manages Python interpreter versions itself, so no separate pyenv step
- MIT-licensed and developed in the open
Cons
- Younger project — fewer years of edge cases shaken out than Poetry
- Publishing workflow is newer and less polished than Poetry's
- Rapid release cadence means occasional behavior changes between versions
- Now owned by OpenAI following the March 2026 Astral acquisition, which raises governance questions for some teams
- Less useful for GPU/scientific stacks where conda-family tools still handle binaries better
Best For
New Python projects, applications and services, CI pipelines where install time matters, and anyone tired of stitching together pip, virtualenv, and pyenv.
Poetry
A mature Python dependency and project manager built around pyproject.toml, with deterministic lockfiles and a well-worn build-and-publish pipeline for PyPI packages.
Pros
- Battle-tested across years of production use with predictable behavior
- Smoothest build and publish workflow for libraries going to PyPI
- Strong, stable documentation and a large body of community answers
- Community-governed with no single corporate owner
- Clear separation of dependency groups for dev, test, and docs
Cons
- Substantially slower — roughly 11 seconds for a cold lockfile install versus uv's 3
- Doesn't manage Python interpreter versions, so you still need pyenv
- Resolver can be slow and occasionally opaque on large dependency trees
- Losing adoption momentum to uv for new projects
- Requires a Python environment to bootstrap itself
Best For
Teams publishing libraries to PyPI, projects already standardized on Poetry that have no performance complaints, and anyone who prefers community governance over corporate stewardship.
The Speed Gap Is Not Marginal
Continuously updated benchmarks using a non-trivial dependency corpus put uv at roughly 3 seconds for a cold install from a lockfile against Poetry's 11 seconds and pip-tools' 33. Lockfile generation shows a wider spread, and adding a single package is close to instantaneous with uv versus a few seconds with Poetry. On a laptop that difference is pleasant; in CI, where installs happen on every push across every matrix entry, it compounds into real money and real waiting.
Consolidation Is the Bigger Story
The pre-uv Python setup routinely meant pyenv for interpreter versions, venv for isolation, pip-tools or Poetry for resolution, and pipx for CLI tools — four or five tools with four or five config formats and upgrade cycles. uv collapses that into one static binary that doesn't even need a Python install to bootstrap. For teams onboarding new developers, that reduction in moving parts often matters more than the raw speed number.
Where Poetry Still Wins
Library publishing is Poetry's remaining clear advantage. Its build and publish path to PyPI is mature, well-documented, and has handled a long tail of packaging edge cases. uv's publishing support is real and improving fast, but it hasn't accumulated the same track record. If your repo's primary output is a package other people install, that's a defensible reason to stay put.
Migration and Governance Considerations
Migration is unusually low-risk because both tools center on pyproject.toml and uv ships a pip-compatible mode, so you can adopt it for installs before committing to its project workflow. The newer wrinkle is governance: OpenAI acquired Astral in March 2026 to fold uv into its Codex platform. uv and Ruff remain MIT-licensed and openly developed, but organizations with strict vendor-neutrality policies should factor the ownership change into the decision rather than discovering it later.
Verdict
Start new projects with uv — the speed difference is large enough to change how CI feels, and consolidating five tools into one removes a whole category of setup problems. Stay on Poetry if you're publishing libraries and value its publish workflow, or if an existing project works fine and migration would be churn for its own sake. Both read pyproject.toml, so this is a reversible decision.

