# pdm-project/pdm

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/pdm-project-pdm).**

8,647 stars · 475 forks · Python · MIT

## Links

- GitHub: https://github.com/pdm-project/pdm
- Homepage: https://pdm-project.org
- awesome-repositories: https://awesome-repositories.com/repository/pdm-project-pdm.md

## Description

PDM is a Python package manager, dependency resolver, and build tool designed to create reproducible environments. It functions as a runtime manager that installs and switches between different versions of the Python interpreter using standalone builds, while managing isolated virtual environments to prevent version conflicts between projects.

The tool distinguishes itself through the use of cross-platform lockfiles and a plugin-based extension architecture, allowing users to add new capabilities via external distributions. It provides a centralized package caching system and a parallel installation pipeline to reduce the time required for environment setup and dependency resolution.

Beyond core management, PDM covers project orchestration through custom script definitions and command-line shortcuts. It also handles the full distribution lifecycle, from generating standardized project archives to publishing packages to remote repositories.

The tool ensures interoperability by using standardized metadata formats and provides utilities for importing and converting project configurations from other managers.

## Tags

### Development Tools & Productivity

- [Python Package Managers](https://awesome-repositories.com/f/development-tools-productivity/dependency-managers/python-package-managers.md) — Provides comprehensive management of Python project dependencies, virtual environments, and package installations.
- [Dependency Lockfiles](https://awesome-repositories.com/f/development-tools-productivity/dependency-lockfiles.md) — Generates cross-platform lockfiles with checksums to ensure reproducible dependency environments. ([source](https://github.com/pdm-project/pdm/blob/main/CHANGELOG.md))
- [Build Reproducibility Lockfiles](https://awesome-repositories.com/f/development-tools-productivity/global-package-managers/global-dependency-upgrading/global-dependency-pinning/build-reproducibility-lockfiles.md) — Provides cross-platform lockfiles that pin exact dependency versions and checksums for reproducible environments.
- [Runtime Provisioning](https://awesome-repositories.com/f/development-tools-productivity/package-installers/standalone-installers/runtime-provisioning.md) — Downloads and manages standalone pre-compiled Python interpreter builds to decouple projects from system-wide installations.
- [Dependency Resolution](https://awesome-repositories.com/f/development-tools-productivity/php-archive-installers/dependency-resolution.md) — Resolves complex version constraints and source repositories to find compatible package versions. ([source](https://github.com/pdm-project/pdm/blob/main/mkdocs.yml))
- [Python Environment Managers](https://awesome-repositories.com/f/development-tools-productivity/python-environment-managers.md) — Creates isolated environments and manages multiple interpreter versions for project-specific dependencies.
- [Build Artifact Caching](https://awesome-repositories.com/f/development-tools-productivity/build-artifact-caching.md) — Stores decompressed build artifacts locally to speed up dependency resolution and installation cycles. ([source](https://github.com/pdm-project/pdm/blob/main/CHANGELOG.md))
- [Parallel](https://awesome-repositories.com/f/development-tools-productivity/dependency-managers/installation-resolution-utilities/dependency-installers/parallel.md) — Employs a parallel installation pipeline to download and install multiple dependencies simultaneously for faster setup.
- [Parallel Installations](https://awesome-repositories.com/f/development-tools-productivity/dependency-managers/installation-resolution-utilities/dependency-installers/parallel-installations.md) — Implements a parallel installation pipeline to accelerate the setup of project dependencies. ([source](https://github.com/pdm-project/pdm/blob/main/CHANGELOG.md))
- [Environment Managers](https://awesome-repositories.com/f/development-tools-productivity/environment-managers.md) — Manages isolated runtime environments and language versions to separate package installations. ([source](https://github.com/pdm-project/pdm/blob/main/README.md))
- [Package Caches](https://awesome-repositories.com/f/development-tools-productivity/package-caches.md) — Maintains a shared global directory of downloaded distributions to eliminate redundant network requests. ([source](https://github.com/pdm-project/pdm#readme))
- [Project Orchestration](https://awesome-repositories.com/f/development-tools-productivity/project-orchestration.md) — Coordinates the execution of custom project scripts and automation tasks via centralized configuration.
- [PEP Standards](https://awesome-repositories.com/f/development-tools-productivity/project-scaffolding-config-code-generation/project-scaffolding-configuration/build-configuration/build-standards/pep-standards.md) — Ensures interoperability by mapping project specifications to official Python Enhancement Proposal metadata and packaging standards.
- [Remote Repository Publishing](https://awesome-repositories.com/f/development-tools-productivity/remote-repository-publishing.md) — Uploads built distributions to remote repositories using secure authentication and trusted publishing mechanisms. ([source](https://github.com/pdm-project/pdm/blob/main/CHANGELOG.md))

### DevOps & Infrastructure

- [Virtual Environment Managers](https://awesome-repositories.com/f/devops-infrastructure/dependency-management/environment-scoping-controls/virtual-environment-managers.md) — Provides isolated runtime environments to prevent dependency conflicts between different software projects. ([source](https://github.com/pdm-project/pdm/blob/main/mkdocs.yml))
- [Dependency Resolvers](https://awesome-repositories.com/f/devops-infrastructure/dependency-management/resolution-mapping-systems/dependency-resolvers.md) — Calculates compatible package versions and generates cross-platform lockfiles to ensure reproducible environments.
- [Python Distribution Packaging](https://awesome-repositories.com/f/devops-infrastructure/python-distribution-packaging.md) — Builds and prepares Python projects into standardized distribution archives for publication to registries. ([source](https://github.com/pdm-project/pdm#readme))
- [Project Metadata Specifications](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/file-based-configuration/project-metadata-specifications.md) — Uses standardized project metadata specifications to define build requirements and ensure tool interoperability. ([source](https://github.com/pdm-project/pdm/blob/main/mkdocs.yml))
- [Environment Synchronizers](https://awesome-repositories.com/f/devops-infrastructure/deployment-management-strategies/execution-platforms-and-targets/deployment-environments/python-environment-installations/environment-synchronizers.md) — Aligns the currently installed packages in an environment to match the exact versions specified in a lockfile. ([source](https://github.com/pdm-project/pdm/blob/main/CHANGELOG.md))
- [Distribution Package Generators](https://awesome-repositories.com/f/devops-infrastructure/package-packaging-tools/distribution-package-generators.md) — Generates standardized distributable archives from source directories to prepare projects for remote publication. ([source](https://github.com/pdm-project/pdm#readme))
- [Platform Extension Plugins](https://awesome-repositories.com/f/devops-infrastructure/release-automation/plugin-extensibility/feature-extension-plugins/platform-extension-plugins.md) — Provides an extensible plugin system that allows users to share and integrate custom distributions. ([source](https://github.com/pdm-project/pdm/blob/main/README.md))

### Programming Languages & Runtimes

- [Virtual Environment Isolation](https://awesome-repositories.com/f/programming-languages-runtimes/expression-evaluators/python-runtimes/virtual-environment-isolation.md) — Creates isolated execution spaces for Python projects to prevent dependency version conflicts.
- [Multi-Version Installations](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/runtime-environments/runtime-management-utilities/pre-release-runtime-installers/multi-version-installations.md) — Automatically downloads and installs multiple specific versions of the Python runtime using standalone builds. ([source](https://github.com/pdm-project/pdm/blob/main/README.md))
- [Python Runtime Managers](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/runtime-environments/runtimes/runtime-management-systems/python-runtime-managers.md) — Installs and manages multiple versions of the Python interpreter using standalone builds.
- [Interpreter Switching](https://awesome-repositories.com/f/programming-languages-runtimes/interpreter-switching.md) — Allows users to toggle between different active Python interpreter versions. ([source](https://github.com/pdm-project/pdm/blob/main/CHANGELOG.md))

### Software Engineering & Architecture

- [Package Dependency Resolution](https://awesome-repositories.com/f/software-engineering-architecture/dependency-graph-resolution/package-dependency-resolution.md) — Implements a constraint-based solver to determine compatible package versions and generate a deterministic dependency graph.
- [Plugin Installation and Management](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/plugin-architectures/plugin-installation-utilities/plugin-installation-and-management.md) — Installs and organizes project-specific extensions to add modular capabilities to the environment. ([source](https://github.com/pdm-project/pdm/blob/main/CHANGELOG.md))
- [Plugin-Based Architectures](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/plugin-module-systems/modular-plugin-architectures/plugin-based-architectures.md) — Features a modular extension architecture that allows adding new capabilities via external plugin distributions.

### Part of an Awesome List

- [Developer Tools](https://awesome-repositories.com/f/awesome-lists/devtools/developer-tools.md) — Modern package and dependency manager.
- [Package Managers](https://awesome-repositories.com/f/awesome-lists/devtools/package-managers.md) — Modern package manager supporting current packaging standards.
