skillfed

craft-parts

Craft parts tooling

craft-parts v2.35.0 166.6K downloads/30d#10,488 on PyPI18
License unclear Active released

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-parts

uv

uv add craft-parts

poetry

poetry add craft-parts

Installing 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

Development Status :: 5 - Production/StableIntended Audience :: DevelopersNatural Language :: EnglishProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12

Tags

parts mechanism for craft toolsdeclarative data processing pipelineartifact packaging frameworkstarcraft parts librarysource processing and organization
starcraft-ecosystemdeclarative-buildcanonical

More Build Tools packages