craft-parts
Craft parts tooling
What it is and what it does
Craft Parts is a library that implements a declarative parts mechanism for the Starcraft family of craft applications. It abstracts the workflow of fetching data from various sources, processing that data according to specifications, and organizing the results before they are packaged into a final artifact. The library is built on widely-used dependencies (lxml, pydantic, PyYAML, requests, semver, tomli, zstandard, and pyxdg) and targets modern Python versions (3.10, 3.11, 3.12).
The package is maintained by Canonical and is in production-stable status. It is most directly useful for developers working within the Starcraft ecosystem, though the underlying parts-processing abstraction may have broader applicability. The library is actively maintained with recent releases and is part of the Canonical open-source family.
Use it for:
- Build and package Snapcraft, Rockcraft, or other Starcraft applications using declarative part definitions.
- Fetch and process source code, assets, or configuration from multiple remote or local sources in a single pipeline.
- Organize and transform build artifacts before final packaging into a distributable format.
- Integrate parts processing into custom build tools or CI/CD workflows that follow the Starcraft pattern.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Craft Parts provides a declarative framework for obtaining, processing, and organizing data from multiple sources before packaging into a final artifact, primarily for Starcraft family applications.
Yes, if you are developing Starcraft family applications (Snapcraft, Rockcraft, etc.) or building tools that need declarative multi-source data processing and packaging. The library is actively maintained, has low install friction, and carries no known vulnerabilities. The unclear license metadata warrants a quick verification, but the stated LGPL-3.0 license is permissive for most use cases. Not recommended if you are outside the Starcraft ecosystem unless you specifically need its parts-processing abstraction.
Install
craft-parts on PyPI
pip
pip install craft-partsuv
uv add craft-partspoetry
poetry add craft-partsInstalling craft-parts
Before you install
Low install friction with a pure-wheel distribution. Active maintenance with a recent release (58 days ago) and ongoing commits. Nine runtime dependencies are all widely-used libraries (lxml, pydantic, PyYAML, requests, semver, etc.), suggesting stable, well-integrated tooling.
License in practice
License treatment is marked unclear in the metadata, though the description states the package is released under LGPL-3.0. Verify the actual license terms before use in proprietary or commercial contexts.
Quickstart
pip install craft-parts
from craft_parts import PartHandler
# Use PartHandler to declare and process parts from your sources
Requires Python 3.10 or later.
Verify before relying
- Whether the LGPL-3.0 license stated in the description is authoritative given the unclear license_treatment metadata.
- Scope of 'Starcraft family' applications and whether this library is suitable for non-Starcraft use cases.
Package facts
| License | not declared (unclear) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 9 — lxml, pydantic, pyxdg, PyYAML, requests-unixsocket2, requests, semver, tomli, zstandard |
| Maintenance | actively maintained — 58 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 166,617/month — #10,488 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: craft_parts-2.35.0-py3-none-any.whl
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
taskflowTaskFlow is a library for defining and…
permissive · top 15,000 on PyPI
app-modelProvides a declarative schema for organizing…
permissive · top 15,000 on PyPI
opsA Python framework for developing…
permissive · top 15,000 on PyPI
sf-hamiltonThis package is a redirect to apache-hamilton;…
permissive · top 15,000 on PyPI
magic-filterProvides a filter mechanism based on dynamic…
permissive · top 5,000 on PyPI
arcade-coreArcade Core provides foundational components…
permissive · top 15,000 on PyPI
chialisp-builderManages build-time compilation of Chialisp…
unclear · top 15,000 on PyPI
omnibase-compatProvides shared structural types—enums, DTOs,…
unclear · top 15,000 on PyPI
soldrSoldr is a Python wrapper that downloads Rust…
permissive · top 15,000 on PyPI
drf-access-policyDeclares access control rules for Django REST…
permissive · top 15,000 on PyPI