packaging

Core Python utilities for versions, specifiers, markers, requirements, and metadata

Library
PyPI
v26.3
751 stars
Apache-2.0 OR BSD-2-Clause

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
85 /100 Excellent
Development Activity 96
Maintenance 72
Community 84
Maturity 60
Momentum 28

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
86 /100 Excellent
Architecture 88
Code Quality 92
Innovation 85
Learning Curve 80

packaging is the reference implementation of Python’s packaging interoperability specifications, maintained by the PyPA. It provides battle-tested building blocks for handling PEP 440 versions, version specifiers, environment markers, requirements, wheel tags, and core metadata.

Used under the hood by pip, build, and much of the modern Python packaging ecosystem, packaging turns fuzzy string handling — like parsing “pytest>=6.2.0; python_version<‘3.11’” or comparing “2.0.0rc1” against “2.0” — into correct, spec-compliant behavior so you never have to reimplement it yourself.

What You Get

  • PEP 440 compliant Version parsing, normalization, and comparison
  • SpecifierSet handling for version constraints like >=1.0,<2.0
  • Environment marker evaluation (e.g. python_version, sys_platform)
  • Requirement parsing for PEP 508 dependency strings
  • Wheel compatibility tags and manylinux/musllinux platform detection
  • Core metadata and pylock (PEP 751) parsing plus SPDX license helpers

Common Use Cases

  • Comparing and sorting release versions in build or CI tooling
  • Validating whether an installed version satisfies a dependency constraint
  • Parsing dependency requirement strings and evaluating their markers
  • Selecting compatible wheels for the current interpreter and platform

Under The Hood

Architecture — packaging is organized as a set of independent, single-responsibility modules under src/packaging/: version.py (PEP 440 Version and comparison keys), specifiers.py (SpecifierSet), markers.py and a hand-written _tokenizer.py/_parser.py pair that drive PEP 508 requirement and marker parsing, requirements.py, tags.py with _manylinux.py/_musllinux.py and _elffile.py for platform detection, plus metadata.py, pylock.py, and a licenses/ package backed by a generated _spdx.py table. Each module can be imported in isolation; there is no central runtime or app lifecycle, only pure functions and value objects.

Tech Stack — It is pure Python targeting 3.9+ (including free-threaded builds and PyPy) with zero runtime dependencies, built with the flit_core backend and calendar versioning (YY.N). Development tooling includes nox for task orchestration, pytest with hypothesis property tests and coverage, pre-commit hooks, ASV benchmarks, and Sphinx (furo) docs published to Read the Docs.

Code Quality — The codebase is fully type-annotated with a shipped py.typed marker and makes deliberate use of modern typing (TypedDict, NamedTuple, Literal, Self). Testing is extensive: 19 dedicated test modules plus property-based and platform-specific suites (manylinux, musllinux, pylock, metadata) exercising the interoperability specs. Naming is precise and consistent, and version-conditional shims (e.g. a fallback deprecated decorator before Python 3.13) are handled cleanly.

API Design — The public API is deliberately minimal and ergonomic: high-level entry points like parse(), Version, SpecifierSet, Requirement, and Marker do the right thing with a single call, hiding the tokenizer/parser machinery behind private underscore modules. Behavior follows the published PyPA specifications, so the library is largely self-documenting for anyone familiar with PEP 440/508, and the hosted documentation covers every module.

Used by 40 apps in this directory

Python
100%
Apache 2.0

Agno

AI Development · Automation · Devops

42,358

Build, run, and manage agent platforms with a full production stack — SDK, runtime, and control plane included.

View details
93
Repo Health
87
Technical
66
Dependency
Built with
Python 100%
Updated 1 weeks ago
Python
89%
Apache 2.0

Apache Airflow

Data Engineering

46,995

Define, schedule, and monitor complex data workflows as Python code — with a powerful UI, 80+ provider integrations, and battle-tested scalability across thousands of production deployments.

View details
96
Repo Health
89
Technical
64
Dependency
Built with
Python 89%
Updated 1 weeks ago
Python
68%
MIT

ArchiveBox

Bookmarks Archiving

28,636

Self-hosted web archiving that saves HTML, PDFs, screenshots, media, and code in open formats you own forever

View details
88
Repo Health
84
Technical
69
Dependency
Built with
Python 68%
HTML 25%
Updated 1 weeks ago
Python
59%
Apache 2.0

argilla

AI Development · Data Engineering

5,125

Collaborate on high-quality AI training data with a self-hosted annotation platform built for LLMs, NLP, and multimodal models.

View details
65
Repo Health
81
Technical
61
Dependency
Built with
Python 59%
Jupyter Notebook 21%
Updated 2 weeks ago
Python
55%
Other

authentik

Authentication · Security

25,758

The self-hosted Identity Provider that replaces Okta, Auth0, and Entra ID with a unified SSO platform supporting SAML, OAuth2/OIDC, LDAP, RADIUS, and WebAuthn.

View details
92
Repo Health
81
Technical
66
Dependency
Built with
Python 55%
TypeScript 36%
Updated 1 weeks ago
C++
68%
Apache 2.0

ClickHouse

Analytics · Data Engineering · Databases

50,116

Open-source column-oriented database that delivers real-time analytical queries on petabyte-scale data with millisecond latency.

View details
95
Repo Health
90
Technical
64
Dependency
Built with
C++ 68%
Python 14%
Updated 1 weeks ago
Go
32%
Apache 2.0

CubeSandbox

AI Agents · Developer Tools · Security

12,728

Instant, concurrent, hardware-isolated MicroVM sandboxes for AI agents — E2B-API compatible, sub-60ms cold starts, and a built-in zero-trust egress proxy, all self-hostable at scale.

View details
82
Repo Health
88
Technical
63
Dependency
Built with
Go 32%
Rust 26%
C 22%
Updated 2 weeks ago
Python
99%
MIT

deepagents

AI Agents · AI Development

29,818

The batteries-included Python agent harness — planning, sub-agents, filesystem, shell, memory, and skills bundled in, built on LangGraph.

View details
88
Repo Health
83
Technical
70
Dependency
Built with
Python 99%
Updated 1 weeks ago
C++
66%
MPL 2.0

Zen Browser

Browser

44,623

A Firefox-based browser that puts focus, privacy, and workflow front-and-centre without sacrificing compatibility

View details
88
Repo Health
81
Technical
80
Dependency
Built with
C++ 66%
JavaScript 15%
Fluent 14%
Updated 1 weeks ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers