Package Managersbeginner

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 comparison of uv vs Poetry
FeatureuvPoetry
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.

All Comparisons

uv vs Poetry — FAQ

Common questions answered from the comparison above

Can I use uv and Poetry in the same project?

Partly. Both read pyproject.toml, so you can use uv for fast installs while keeping Poetry for building and publishing. What you can't do cleanly is maintain both lockfiles as sources of truth — pick one to be authoritative or you'll get drift.

Is uv a drop-in replacement for pip?

For most workflows, yes. uv ships a pip-compatible interface that accepts familiar commands and requirements files, which is the recommended way to migrate incrementally before adopting uv's own project workflow.

Does uv work for data science and ML projects?

For pure-Python dependencies it works well. For stacks with heavy compiled or GPU packages, many teams still create the environment with conda or mamba and then use uv or pip for the remaining pure-Python packages — a hybrid that avoids the binary-resolution problems conda was built to solve.

Should I migrate an existing Poetry project to uv?

Only if you have a reason. Slow CI installs, a painful pyenv-plus-Poetry setup, or onboarding friction are good reasons. If your current setup works and nobody complains, migrating is churn. The decision is reversible either way since both use pyproject.toml.

What about Rye, Hatch, and pdm?

Hatch is strong for multi-environment testing matrices and pdm has a loyal following. Rye is the most notable case — Astral acquired it, and it is converging with uv rather than competing. In 2026 all three are niche relative to uv's momentum, though none are abandoned.

Get the next comparison by email

One email a week: new and trending developer tools, fresh comparisons, and what shipped. Unsubscribe in one click.