# uv vs Poetry: source lines of code compared

The uv vs Poetry comparison on OctoCounts shows side-by-side source line counts for astral-sh/uv and python-poetry/poetry, counted with the same engine and analysis options on the dates shown in the methodology line: files, total lines, code lines, comment lines, blank lines, and per-language totals, pinned to the exact commits listed below.

As of 2026-09-16, astral-sh/uv contains 418,621 total lines (359,662 code) across 943 files, while python-poetry/poetry contains 30,747 total lines (21,315 code) across 198 files as of 2026-09-16. astral-sh/uv is about 17x the size of python-poetry/poetry by code lines. Code size is not code quality: a larger count only means more source material, not a better or worse project.

| Metric | [astral-sh/uv](https://octocounts.com/github/astral-sh/uv) | [python-poetry/poetry](https://octocounts.com/github/python-poetry/poetry) |
| --- | ---: | ---: |
| Files | 943 | 198 |
| Total lines | 418,621 | 30,747 |
| Code lines | 359,662 | 21,315 |
| Comment lines | 26,100 | 3,446 |
| Blank lines | 32,859 | 5,986 |
| Languages counted | 12 | 4 |

Top languages in astral-sh/uv: Rust (65.3% of code), JSON (27.6% of code), YAML (3.1% of code). Top languages in python-poetry/poetry: Python (97.2% of code), JSON (1.9% of code), TOML (0.9% of code). JSON, Python, TOML appear in both top language lists; Rust, YAML appear only in astral-sh/uv's top languages; Markdown appears only in python-poetry/poetry's top languages.

Methodology: both counts come from cached OctoCounts reports generated with tokei. astral-sh/uv was counted at ref f018faac8db2a922b3ecfe9c7cb480a40663f9b4 (commit f018faac8db2) on 2026-09-16; python-poetry/poetry was counted at ref be56ff07db06e9b82574648433ca228e4cac549b (commit be56ff07db06) on 2026-09-16. See the [counting methodology](https://octocounts.com/docs/methodology) for ignored directories and analysis options.
## About this comparison

astral-sh/uv counts the uv repository — the Rust-based Python package installer and resolver and the surrounding tooling in the same project — while python-poetry/poetry counts the Poetry repository, the Python-based packaging and dependency-management tool with its own installer and resolver. Both counts cover the tool itself rather than any environment it manages, taken on the dates in the methodology line above.

The per-language tables make the headline contrast measurable: uv is a predominantly Rust codebase while Poetry is a Python application — two implementations of the same category of tool in different languages, without needing to infer anything from totals.

Both repositories include their own test suites and fixture material, so part of each count exists to validate dependency-resolution behavior against many scenarios rather than to ship as tool code.

_A larger or smaller source tree does not measure install or resolution speed: performance is a property of the shipped tool's design and the package set being resolved, not of the repository's line count._

Sources: [astral-sh/uv repository (Rust Python tooling)](https://github.com/astral-sh/uv) · [python-poetry/poetry repository](https://github.com/python-poetry/poetry). Statements verified 2026-09-16.

Evidence and next steps:

- [astral-sh/uv SLOC report](https://octocounts.com/github/astral-sh/uv)
- [python-poetry/poetry SLOC report](https://octocounts.com/github/python-poetry/poetry)
- [Compare astral-sh/uv and python-poetry/poetry interactively](https://octocounts.com/compare?left=https%3A%2F%2Fgithub.com%2Fastral-sh%2Fuv&right=https%3A%2F%2Fgithub.com%2Fpython-poetry%2Fpoetry)

Note: code size is not code quality. OctoCounts only reports reproducible line counts and makes no claim that either project is better.

## Compare FAQ

### Which has more lines of code, astral-sh/uv or python-poetry/poetry?

astral-sh/uv has more code: 359,662 code lines versus 21,315 for python-poetry/poetry, about 17x as much, based on cached OctoCounts reports as of 2026-09-16.

### Does more source lines of code mean more complexity?

Not necessarily. SLOC measures size, not complexity, quality, or maintainability. A larger codebase can mean more features, more generated or vendored code, more verbose language idioms, or more tests — none of which imply the code is harder to work with. Use SLOC to gauge the scale of what you'd be reading or maintaining, not as a quality signal for astral-sh/uv, python-poetry/poetry, or any repository.

### How is this comparison calculated?

Methodology: both counts come from cached OctoCounts reports generated with tokei. astral-sh/uv was counted at ref f018faac8db2a922b3ecfe9c7cb480a40663f9b4 (commit f018faac8db2) on 2026-09-16; python-poetry/poetry was counted at ref be56ff07db06e9b82574648433ca228e4cac549b (commit be56ff07db06) on 2026-09-16. See the counting methodology for ignored directories and analysis options.

### Can I compare a different branch, tag, or commit?

Yes. This page shows the default branch for each repository. Use the interactive comparison tool to pick any public GitHub repository, branch, tag, or commit SHA for both sides and get a fresh side-by-side report.

## Related OctoCounts pages

- [Interactive repository comparison](https://octocounts.com/compare)
- [Recently analyzed repositories](https://octocounts.com/recent)
- [Popular SLOC reports](https://octocounts.com/popular)
- [Trending GitHub repositories](https://octocounts.com/trending)
- [Hall of Monoliths](https://octocounts.com/hall-of-monoliths)
- [Original research: how filtering changes SLOC counts](https://octocounts.com/research)
- [GitHub SLOC counter guide](https://octocounts.com/docs/github-sloc-counter)
- [Counting methodology](https://octocounts.com/docs/methodology)
- [SLOC and code metrics glossary](https://octocounts.com/docs/glossary)
- [OctoCounts API docs](https://octocounts.com/docs/api)
