--- id: craft-parts version: "2.35.0" license: unclear license_treatment: unclear maintenance: active --- # craft-parts — Craft parts tooling License: unclear · Maintenance: active · Downloads: 166.6K/mo ## 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 above — 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 pip install craft-parts uv add craft-parts 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_current - Install friction: low - Maintenance: active - Downloads: 166.6K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags parts mechanism for craft tools, declarative data processing pipeline, artifact packaging framework, starcraft parts library, source processing and organization, starcraft-ecosystem, declarative-build, canonical [View on SkillFed](https://skillfed.io/packages/craft-parts) · [View on PyPI](https://pypi.org/project/craft-parts/)