pdm-backend
The build backend used by PDM that supports latest packaging standards
What it is and what it does
pdm-backend is a build backend that implements the PEP 517 specification for building Python packages. It reads project metadata in the PEP 621 format (typically from pyproject.toml) and converts it to the standard Python package metadata format. While designed as PDM's default builder, it can be used independently in any project that declares it in the build-system section of pyproject.toml.
The package has a minimal footprint, depending only on importlib-metadata at runtime. It supports current Python versions from 3.9 through 3.14, and is actively maintained with recent releases. The codebase is stable (marked Production/Stable) and carries no known security vulnerabilities, making it a reliable choice for projects adopting modern packaging standards.
Use it for:
- Use it to build PDM projects that declare pdm-backend as their build backend in pyproject.toml.
- Use it as a standalone PEP 517 backend for non-PDM projects that want PEP 621 metadata support.
- Use it when migrating from older build systems (like setup.py) to standards-compliant declarative metadata.
- Use it in CI/CD pipelines to build and package Python projects with modern packaging standards.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
A PEP 517-compliant build backend that reads PEP 621 project metadata and converts it to standard Python package metadata, usable standalone or as PDM's default builder.
Yes. This is a production-stable, actively maintained build backend with no security issues, minimal dependencies, and broad Python version support. Install it if your project uses PDM or if you want a lightweight PEP 517-compliant builder that reads PEP 621 metadata. The low install friction and permissive license make it a straightforward choice.
Install
pdm-backend on PyPI
pip
pip install pdm-backenduv
uv add pdm-backendpoetry
poetry add pdm-backendInstalling pdm-backend
Before you install
Low install friction with a single runtime dependency (importlib-metadata). Active maintenance with a recent release 70 days ago and ongoing repository activity.
License in practice
MIT license permits commercial and private use with minimal restrictions; suitable for most projects.
Quickstart
pip install pdm-backend
# In pyproject.toml:
[build-system]
requires = ["pdm-backend"]
build-backend = "pdm.backend"
# Then build with:
python -m build
Requires Python 3.9 or later; intended for use during package build, not runtime.
Verify before relying
- Whether the package works as a standalone build backend outside PDM projects without additional configuration.
- Performance characteristics or build-time overhead compared to other PEP 517 backends.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — importlib-metadata |
| Maintenance | actively maintained — 70 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 6,849,532/month — #1,834 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pdm_backend-2.4.9-py3-none-any.whl
Keywords: packaging, PEP 517, build
Tags
More Build Tools packages
Provides reusable utilities for Python…
permissive · top 100 on PyPI
tqdmWraps any iterable to display a real-time…
copyleft · top 100 on PyPI
pippip is the standard installer for Python…
permissive · top 100 on PyPI
hatchlingHatchling is a standards-compliant Python build…
permissive · top 100 on PyPI
grpcio-toolsGenerates Python gRPC service stubs and message…
permissive · top 1,000 on PyPI
pre-commitpre-commit is a framework for installing and…
permissive · top 1,000 on PyPI
pdmPDM is a modern Python package and dependency…
unclear · top 5,000 on PyPI
pdm-pep517A PEP 517 build backend that reads PEP 621…
permissive · top 15,000 on PyPI
wheywhey is a PEP 517 build backend that creates…
permissive · top 15,000 on PyPI
pyproject-tomlParses and validates Python project metadata…
permissive · top 15,000 on PyPI
pdm-build-lockedA pdm plugin that includes locked dependency…
permissive · top 5,000 on PyPI
PyQt-builderPyQt-builder is a PEP 517 compliant build…
permissive · top 15,000 on PyPI
pyproject-metadataValidates and transforms pyproject.toml…
permissive · top 5,000 on PyPI
poetry-corepoetry-core is a PEP 517 build backend that…
permissive · top 1,000 on PyPI
meson-pythonmeson-python is a PEP 517 build backend that…
permissive · top 5,000 on PyPI
pep517Provides subprocess-isolated wrappers around…
permissive · top 5,000 on PyPI