Snapcraft

Snapcraft is the command-line build tool for packaging and distributing software and apps in the snap container format.

The tool packages apps across many supported languages, build tools, and frameworks, such as Python, C and C++, Rust, Node, and GNOME. Snaps can be tested, debugged, and locally shared before being published to the global Snap Store and private stores. It uses simple commands to manage and monitor releases at a granular level.

It solves the problems of dependency management and architecture support by bundling all of a software’s libraries into the container itself, and provides a way to package any app, program, toolkit, or library for all major Linux distributions and IoT devices.

Snapcraft is for developers, package maintainers, fleet administrators, and hobbyists who are interested in publishing snaps for Linux and IoT devices.

In this documentation

How this documentation is organized

The Snapcraft documentation embodies the Diátaxis framework.

  • The tutorial is a lesson that steps through the main process of packaging a snap.

  • How-to guides contain directions for crafting and debugging snaps.

  • References describe the structure and function of the individual components in Snapcraft.

  • Explanations aid in understanding the concepts and relationships of Snapcraft as a system.

Project and community

Snapcraft is a member of the Canonical family. It’s an open source project that warmly welcomes community projects, contributions, suggestions, fixes and constructive feedback.

Get involved

Releases and support

Governance and policies