https://github.com/canonical/snapcraft
Package, distribute, and update any app for Linux and IoT.
https://github.com/canonical/snapcraft
snaps
Last synced: 15 days ago
JSON representation
Package, distribute, and update any app for Linux and IoT.
- Host: GitHub
- URL: https://github.com/canonical/snapcraft
- Owner: canonical
- License: gpl-3.0
- Created: 2015-10-29T17:23:15.000Z (over 9 years ago)
- Default Branch: main
- Last Pushed: 2025-04-10T17:40:04.000Z (17 days ago)
- Last Synced: 2025-04-10T17:56:53.519Z (17 days ago)
- Topics: snaps
- Language: Python
- Homepage: https://canonical-snapcraft.readthedocs-hosted.com
- Size: 32.7 MB
- Stars: 1,209
- Watchers: 41
- Forks: 459
- Open Issues: 205
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: COPYING
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-python-applications - Repo - line tool to package, distribute, and update apps for Linux and IoT using containerization, developed by Canonical. `(linux)` (<a id="tag-dev" href="#tag-dev">Dev</a> / <a id="tag-dev.build" href="#tag-dev.build">Build</a>)
README
# Snapcraft
[![Snapcraft][snapcraft-badge]][snapcraft-site]
[![Documentation Status][rtd-badge]][rtd-latest]
[![Spread tests][gha-spread-badge]][gha-spread]
[![Codecov Status][codecov-badge]][codecov-status]
[![Ruff status][ruff-badge]][ruff-site]**Snapcraft** is the command-line build tool for packaging and distributing software and
apps in the snap container format. It solves the problems of dependency management and
architecture support by bundling all of a software's libraries into the container
itself, and gives developers a way to package any app, program, toolkit, or library for
all major Linux distributions and IoT devices.## Basic usage
A snap's build configuration is stored in simple language as a project file called
`snapcraft.yaml`, making it easy to add as a new package format to your existing code
base.From the root of the code base of any software project, Snapcraft creates a minimal
`snapcraft.yaml` with:```bash
snapcraft init
```After you add all your project's build and runtime details to the project file, bundle
your project into a snap with:```bash
snapcraft pack
```Your project can be registered on public and private app stores, including the Snap
Store:```bash
snapcraft register
```Snap versions and revisions, including parallel releases, are published to the store
with:```bash
snapcraft upload
```If you're interested in learning more about the Snapcraft commands and how to compose a
project file, try [creating your first
snap](https://snapcraft.io/docs/create-a-new-snap).## Installation
Snapcraft is available on all major Linux distributions, Windows, and macOS.
Snapcraft itself has first-class support as a snap. On snap-ready systems, you can install it on the command line with:
```bash
sudo snap install snapcraft --classic
```For complete installation, you need an additional Linux container tool. Snapcraft can
also be installed as a traditional package on many popular Linux repositories. If you
need help with either, the documentation covers how to [set up
Snapcraft](https://canonical-snapcraft.readthedocs-hosted.com/en/stable/howto/set-up-snapcraft).## Documentation
The Snapcraft docs provide guidance and learning material about the full process of
building a project file, debugging snaps, resolving interfaces, the command reference,
and much more:- [Snapcraft build guide on snapcraft.io](https://snapcraft.io/docs)
- [Snapcraft documentation on
ReadTheDocs](https://canonical-snapcraft.readthedocs-hosted.com/en/stable/)## Community and support
We are a growing community of crafters who build snaps for all Linux software.
Ask your questions about Snapcraft and what's on the horizon, and see who's working on
what in the [Snapcraft Forum](https://forum.snapcraft.io) and on the [Snapcraft Matrix
channel](https://matrix.to/#/#snapcraft:ubuntu.com).You can report any issues or bugs on the project's [GitHub
repository](https://github.com/canonical/snapcraft/issues).Snapcraft is covered by the [Ubuntu Code of
Conduct](https://ubuntu.com/community/ethos/code-of-conduct).## Contribute to Snapcraft
Snapcraft is open source and part of the Canonical family. We would love your help.
If you're interested, start with the [contribution guide](HACKING.md).
We welcome any suggestions and help with the docs. The [Canonical Open Documentation
Academy](https://github.com/canonical/open-documentation-academy) is the hub for doc
development, including Snapcraft docs. No prior coding experience is required.## License and copyright
Snapcraft is released under the [GPL-3.0 license](LICENSE).
© 2015-2025 Canonical Ltd.
[snapcraft-badge]: https://snapcraft.io/snapcraft/badge.svg
[snapcraft-site]: https://snapcraft.io/snapcraft
[rtd-badge]: https://readthedocs.com/projects/canonical-snapcraft/badge/?version=latest
[rtd-latest]: https://canonical-snapcraft.readthedocs-hosted.com/en/latest/?badge=latest
[gha-spread-badge]: https://github.com/canonical/snapcraft/actions/workflows/spread-scheduled.yaml/badge.svg?branch=main
[gha-spread]: https://github.com/canonical/snapcraft/actions/workflows/spread-scheduled.yaml
[ruff-badge]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json
[ruff-site]: https://github.com/astral-sh/ruff
[codecov-badge]: https://codecov.io/github/canonical/snapcraft/coverage.svg?branch=master
[codecov-status]: https://codecov.io/github/canonical/snapcraft?branch=master