snapcraft.io Open in urlscan Pro
2620:2d:4000:1::26  Public Scan

Submitted URL: http://snapcraft.io/
Effective URL: https://snapcraft.io/
Submission: On December 13 via manual from SK — Scanned from GB

Form analysis 1 forms found in the DOM

/search

<form class="p-search-box" action="/search">
  <label class="u-off-screen" for="search">Search</label>
  <input type="search" id="search" class="p-search-box__input" name="q" placeholder="Search thousands of snaps" required="" autocomplete="on">
  <button type="reset" class="p-search-box__reset"><i class="p-icon--close">Close</i></button>
  <button type="submit" class="p-search-box__button"><i class="p-icon--search">Search</i></button>
</form>

Text Content

Skip to main content

Canonical Snapcraft
Menu Close menu
 * Snap Store
 * About Snapcraft
 * Learn
   * Blog
   * Build
   * Docs
   * Tutorials
 * IoT
 * Forum

 * * Products
     * Canonical
     * Ubuntu
     * Ubuntu Pro
     * Snapcraft
     * LXD
     * MAAS
     * OpenStack
     * Ceph
     * Kubernetes
     * Juju
   * Also from Canonical
     * Anbox Cloud
     * Launchpad
     * Ubuntu on public clouds
     * Multipass
     * Cloud-init
     * Landscape
     * Netplan
     * Charmed Kubeflow
     * MicroCloud
   * About
     * Canonical
     * Press centre
     * Careers
     * Blog
     * Documentation
     * Resources
     * Partners
     * Contact us
 * All Canonical
 * My account
   * My published snaps
   * My stores
   * Account details
   * Sign out
 * Sign in


THE APP STORE FOR LINUX

Search Close Search


--------------------------------------------------------------------------------


SNAPS YOU MAY LIKE

 * Featured
 * Development
 * Games
 * Server

 * Featured
 * Development
 * Games
 * Server

--------------------------------------------------------------------------------


ADGUARD HOME

AdGuard

Network-wide ads & trackers blocking DNS server

--------------------------------------------------------------------------------


DRAW.IO

draw.io

draw.io

--------------------------------------------------------------------------------


SPOTIFY

Spotify

Music for everyone

--------------------------------------------------------------------------------

 * View all featured snaps
 * View all snaps

--------------------------------------------------------------------------------



--------------------------------------------------------------------------------


OFFICIAL SNAPS FROM MAJOR PUBLISHERS



--------------------------------------------------------------------------------


LATEST NEWS FROM OUR BLOG ›

--------------------------------------------------------------------------------


SNAPCRAFT.IO RELOADED: CHECK OUT THE NEW LOOK AND FEEL

30 June 2023


Holly Hall

--------------------------------------------------------------------------------


IMPROVING SNAP MAINTENANCE WITH AUTOMATION

27 June 2023


Heather Ellsworth

--------------------------------------------------------------------------------


SNAPCRAFT 8.0 AND THE RESPECTABLE END OF CORE18

16 June 2023


Igor Ljubuncic

--------------------------------------------------------------------------------





LEARN HOW TO SNAP AN APP IN 30 MINUTES

--------------------------------------------------------------------------------

Choose your language:
Python Pre-built apps C/C++ Go Java Node.js Electron Flutter Ruby Rust MOOS ROS
ROS 2


CHOOSE
YOUR LANGUAGE:

 *   Python
 *   Pre-built apps
 *   C/C++
 *   Go
 *   Java
 *   Node.js
 *   Electron
 *   Flutter
 *   Ruby
 *   Rust
 *   MOOS
 *   ROS
 *   ROS 2

--------------------------------------------------------------------------------


WHY ARE SNAPS GOOD FOR C/C++ PROJECTS?

 * Snaps are easy to discover and install. Millions of users can browse and
   install snaps graphically in the Snap Store or from the command-line.
 * Snaps install and run the same across Linux. They bundle the exact versions
   of your app’s dependencies.
 * Snaps automatically update to the latest version. Four times a day, users’
   systems will check for new versions and upgrade in the background.
 * Upgrades are not disruptive. Because upgrades are not in-place, users can
   keep your app open as it’s upgraded in the background.
 * Upgrades are safe. If your app fails to upgrade, users automatically roll
   back to the previous revision.

In just a few steps, you’ll have an example C/C++ app in the Snap Store.

--------------------------------------------------------------------------------


HERE'S HOW DOSBOX DEFINES SNAPCRAFT.YAML:

name: dosbox
version: "0.74-svn"
summary: DOS emulator
description: |
    DOSBox is a x86 emulator with Tandy/Hercules/[…]

confinement: devmode
base: core18

parts:
  dosbox:
    plugin: autotools
    source-type: tar
    source: http://source.dosbox.com/dosboxsvn.tgz
    build-packages:
    - g++
    - make
    - libsdl1.2-dev
    […]
    - libasound2-dev
    stage-packages:
    - libsdl-sound1.2
    - libsdl-net1.2
    - libxcursor1
    […]
    - zlib1g

  apps:
    dosbox:
      command: dosbox
      environment:
        "LD_LIBRARY_PATH": "$SNAP/usr/lib/
        $SNAPCRAFT_ARCH_TRIPLET/pulseaudio"
        "DISABLE_WAYLAND": "1"

Show more

--------------------------------------------------------------------------------

Continue ›

--------------------------------------------------------------------------------


WHY ARE SNAPS GOOD FOR ELECTRON PROJECTS?

 * Snaps are easy to discover and install. Millions of users can browse and
   install snaps graphically in the Snap Store or from the command-line.
 * Snaps install and run the same across Linux. They bundle Electron and all of
   your app’s dependencies, be they Node modules or system libraries.
 * Snaps automatically update to the latest version. Four times a day, users’
   systems will check for new versions and upgrade in the background.
 * Upgrades are not disruptive. Because upgrades are not in-place, users can
   keep your app open as it’s upgraded in the background.
 * Upgrades are safe. If your app fails to upgrade, users automatically roll
   back to the previous revision.

In just a few steps, you’ll have an example Electron app in the Snap Store.

--------------------------------------------------------------------------------


HERE'S HOW TO USE IT WITH ELECTRON-QUICK-START:

{
  "name": "electron-quick-start",
  "version": "1.0.0",
  "description": "A minimal Electron application",
  "main": "main.js",
  "scripts": {
    "start": "electron .",
    "dist": "build --linux snap"
  },
  "repository": "https://github.com/electron/electron-quick-start",
  "keywords": [
    "Electron",
    "quick",
    "start",
    "tutorial",
    "demo"
  ],
  "author": "GitHub",
  "license": "CC0-1.0",
  "devDependencies": {
    "electron": "^2.0.0",
    "electron-builder": "^20.27.1"
  }
}

Show more

--------------------------------------------------------------------------------

Continue ›

--------------------------------------------------------------------------------


WHY ARE SNAPS GOOD FOR FLUTTER PROJECTS?

 * Snaps are easy to discover and install. Millions of users can browse and
   install snaps graphically in the Snap Store or from the command-line.
 * Snaps install and run the same across Linux. They bundle the exact versions
   of your app’s dependencies.
 * Snaps automatically update to the latest version. Four times a day, users’
   systems will check for new versions and upgrade in the background.
 * Upgrades are not disruptive. Because upgrades are not in-place, users can
   keep your app open as it’s upgraded in the background.
 * Upgrades are safe. If your app fails to upgrade, users automatically roll
   back to the previous revision.

In just a few steps, you’ll have an example Flutter app in the Snap Store.

--------------------------------------------------------------------------------


HERE'S HOW SUPER-COOL-APP DEFINES SNAPCRAFT.YAML:

name: super-cool-app
version: "1.0"
summary: Super Cool App
description: |
    Super Cool App that does everything! […]

confinement: strict
base: core18

parts:
  super-cool-app:
    plugin: flutter
    source: https://github.com/kenvandine/super-cool-app.git
    flutter-target: lib/main.dart

apps:
  super-cool-app:
    command: super_cool_app
    extensions: [flutter-dev]

Show more

--------------------------------------------------------------------------------

Continue ›

--------------------------------------------------------------------------------


WHY ARE SNAPS GOOD FOR GO PROJECTS?

 * Easy to discover and install by millions using the Snap Store or command-line
   every day
 * Automatically updated to the latest stable version of your app
 * Revert to the previous version if an update fails, preserving data

Programming in Go makes it easy to create a zip of your app that runs across
Linux, without dependencies. However, end user discovery and update management
remain a challenge. Snaps fill this gap, letting you distribute a Go app in an
app store experience for end users.

In just a few steps, you’ll have an example Go app in the Snap Store.

--------------------------------------------------------------------------------


HERE’S HOW HTTPLAB DEFINES SNAPCRAFT.YAML:

name: httplab
version: '1.0'
summary: An interactive web server.
description: |
  HTTPLab let you inspect HTTP requests […]

confinement: devmode
base: core18

parts:
  httplab:
    plugin: go
    go-importpath: github.com/gchaincl/httplab
    source: https://github.com/gchaincl/httplab
    source-type: git
    build-packages:
      - gcc

apps:
  httplab:
    command: bin/httplab

Show more

--------------------------------------------------------------------------------

Continue ›

--------------------------------------------------------------------------------


WHY ARE SNAPS GOOD FOR JAVA PROJECTS?

 * Simplify installation instructions, regardless of distribution, to snap
   install myjavaapp.
 * Directly control the delivery of automatic application updates.

Distributing a Java application for Linux and reaching the widest possible
audience is complicated. Typically, the user has to make sure the JRE/SDK
version and their environment are configured correctly. When a Linux
distribution changes the delivered JRE, this can be problematic for
applications. Snapcraft ensures the correct JRE is shipped alongside the
application at all times.

In just a few steps, you’ll have an example Java app in the Snap Store.

--------------------------------------------------------------------------------


HERE'S HOW FREEPLANE DEFINES SNAPCRAFT.YAML:

name: freeplane
version: '1.8.1'
summary: Application for Mind Mapping […]
description: |
  Freeplane is a free and open source software […]

confinement: devmode
base: core18

parts:
  freeplane:
    plugin: gradle
    source: https://github.com/freeplane/freeplane.git
    source-tag: release-$SNAPCRAFT_PROJECT_VERSION
    gradle-version: '5.1.1'
    gradle-output-dir: BIN
    gradle-options: [binZip, -xtest, -xcreateGitTag]
    override-build: |
      snapcraftctl build
      unzip -o DIST/freeplane_bin-*.zip -d $SNAPCRAFT_PART_INSTALL/
    build-packages:
      - unzip

apps:
  freeplane:
    extensions:
      - gnome-3-28
    command: freeplane-$SNAPCRAFT_PROJECT_VERSION/freeplane.sh
    environment:
      JAVA_HOME: $SNAP/usr/lib/jvm/java-11-openjdk-amd64
      PATH: $JAVA_HOME/jre/bin:$PATH
    plugs:
      - home
      - network
      - cups-control

Show more

--------------------------------------------------------------------------------

Continue ›

--------------------------------------------------------------------------------


WHY ARE SNAPS GOOD FOR MOOS PROJECTS?

 * Bundle all the runtime requirements, including the exact version of
   MOOS/MOOS-IvP and system libraries you need.
 * Directly and reliably control the delivery of application updates using
   existing infrastructure.
 * Upgrades are safe. If your app fails to upgrade, users automatically roll
   back to the previous revision.
 * Extremely simple creation of daemons.

In just a few steps, you’ll have an example MOOS app in the Snap Store.

--------------------------------------------------------------------------------


HERE'S AN EXAMPLE SNAPCRAFT.YAML THAT USES MOOS:

name: moos
version: '0.1'
summary: MOOS Example
description: |
  This example includes MOOSDB, the main […]

confinement: devmode
base: core18

parts:
  moos:
    source: https://github.com/themoos/core-moos/archive/v10.4.0.tar.gz
    plugin: cmake
    build-packages: [g++]

apps:
  MOOSDB:
    command: bin/MOOSDB

Show more

--------------------------------------------------------------------------------

Continue ›

--------------------------------------------------------------------------------


WHY ARE SNAPS GOOD FOR NODE.JS PROJECTS?

 * Easy to discover and install by millions using the Snap Store or command-line
   every day.
 * Automatically updated to the latest stable version of your app.
 * Revert to the previous version if an update fails, preserving data.

With npm you can distribute apps to other developers, but it’s not tailored to
end users. Snaps let you distribute your Node app in an app store experience.

In just a few steps, you’ll have an example Node.js app in the Snap Store.

--------------------------------------------------------------------------------


HERE'S HOW WETHR DEFINES SNAPCRAFT.YAML:

name: wethr
version: '1.0'
summary: Command line weather tool.
description: |
  Get current weather […]

confinement: devmode
base: core18

parts:
  wethr:
    plugin: nodejs
    source: https://github.com/twobucks/wethr.git

apps:
  wethr:
    command: wethr

Show more

--------------------------------------------------------------------------------

Continue ›

--------------------------------------------------------------------------------


WHY ARE SNAPS GOOD FOR PRE-BUILT APPS?

 * Easy to discover and install by millions using the Snap Store or command-line
   every day
 * Automatically updated to the latest stable version of your app
 * Revert to the previous version if an update fails, preserving data
 * Isolation ensures no conflicts between applications
 * Identical behaviour across Linux distributions, even with library
   dependencies

Distributing the Linux build of your app as a zip lets you provide one download
and set of instructions for all of Linux. However, end user discovery and update
management remain a challenge. Snaps fill this gap, letting you wrap your
existing Linux build in an app store experience for end users.

In just a few steps, you’ll have an example pre-built app in the Snap Store.

--------------------------------------------------------------------------------


HOW GEEKBENCH4 DEFINES SNAPCRAFT.YAML

name: geekbench4
version: 4.2.0
summary: Cross-Platform Benchmark
description: |
  Geekbench 4 measures your system's power […]

confinement: devmode
base: core18

parts:
  geekbench4:
    plugin: dump
    source: http://cdn.geekbench.com/Geekbench-$SNAPCRAFT_PROJECT_VERSION-Linux.tar.gz

apps:
  geekbench4:
    command: geekbench4

Show more

--------------------------------------------------------------------------------

Continue ›

--------------------------------------------------------------------------------


WHY ARE SNAPS GOOD FOR PYTHON PROJECTS?

 * Easy to discover and install by millions using the Snap Store or command-line
   every day
 * Automatically updated to the latest stable version of your app
 * Revert to the previous version if an update fails, preserving data
 * Isolation ensures no conflicts between applications
 * Identical behaviour across Linux distributions, even with library
   dependencies

With PyPI you can distribute apps to other developers, but it’s not tailored to
end users. Virtualenv lets you install an app’s dependencies in isolation, but
it’s not automatically used for installs from PyPI. Snaps let you distribute a
dependency-isolated Python app in an app store experience for end users.

In just a few steps, you’ll have an example Python app in the Snap Store.

--------------------------------------------------------------------------------


HERE'S HOW OFFLINEIMAP DEFINES SNAPCRAFT.YAML:

name: offlineimap
version: '1.0'
summary: OfflineIMAP
description: |
OfflineIMAP is software that downloads […]

confinement: devmode
base: core18

parts:
offlineimap:
  plugin: python
  python-version: python2
  source: https://github.com/snapcraft-docs/offlineimap.git
  stage-packages:
    - python-six

apps:
offlineimap:
  command: bin/offlineimap

Show more

--------------------------------------------------------------------------------

Continue ›

--------------------------------------------------------------------------------


WHY ARE SNAPS GOOD FOR ROS PROJECTS?

 * Bundle all the runtime requirements, including the exact version of ROS and
   system libraries you need.
 * Expand the distributions supported beyond just Ubuntu.
 * Directly and reliably control the delivery of application updates using
   existing infrastructure.
 * Extremely simple creation of daemons.

In just a few steps, you’ll have an example ROS app in the Snap Store.

--------------------------------------------------------------------------------


HERE'S AN EXAMPLE SNAPCRAFT.YAML THAT USES ROS:

name: ros-talker-listener
version: '0.1'
summary: ROS Talker/Listener Example
description: |
  This example launches a ROS talker and listener.

base: core18
confinement: devmode

parts:
  ros-tutorials:
    plugin: catkin
    source: https://github.com/ros/ros_tutorials.git
    source-branch: melodic-devel
    source-space: roscpp_tutorials/

apps:
  ros-talker-listener:
    command: roslaunch roscpp_tutorials talker_listener.launch

Show more

--------------------------------------------------------------------------------

Continue ›

--------------------------------------------------------------------------------


WHY ARE SNAPS GOOD FOR ROS2 PROJECTS?

 * Bundle all the runtime requirements, including the exact version of ROS and
   system libraries you need.
 * Expand the distributions supported beyond just Ubuntu.
 * Directly and reliably control the delivery of application updates using
   existing infrastructure.
 * Extremely simple creation of daemons.

In just a few steps, you’ll have an example ROS2 app in the Snap Store.

--------------------------------------------------------------------------------


HERE'S AN EXAMPLE SNAPCRAFT.YAML THAT USES ROS2:

name: ros2-talker-listener
version: '0.1'
summary: ROS2 Talker/Listener Example
description: |
  This example launches a ROS2 talker and listener.

confinement: devmode
base: core18

parts:
  ros-demos:
    plugin: colcon
    source: https://github.com/ros2/demos.git
    source-branch: dashing
    colcon-rosdistro: dashing
    colcon-source-space: demo_nodes_cpp
    stage-packages: [ros-dashing-ros2launch]

apps:
  ros2-talker-listener:
    command: opt/ros/dashing/bin/ros2 launch demo_nodes_cpp talker_listener.launch.py

Show more

--------------------------------------------------------------------------------

Continue ›

--------------------------------------------------------------------------------


WHY ARE SNAPS GOOD FOR RUBY PROJECTS?

 * Bundle all the runtime requirements.
 * Simplify installation instructions, regardless of distribution, to snap
   install myrubyapp.
 * Directly control the delivery of automatic application updates.
 * Extremely simple creation of services.

Linux install instructions for Ruby applications often get complicated. To
prevent modules from different Ruby applications clashing with each other,
developer tools like rvm or rbenv must be used. With snapcraft, it’s one command
to produce a bundle that works anywhere.

In just a few steps, you’ll have an example Ruby app in the Snap Store.

--------------------------------------------------------------------------------


HERE’S HOW MDL USES IT:

name: mdl
version: "0.5.0"
summary: Markdown lint tool
description: |
  Style checker/lint tool for markdown files

confinement: devmode
base: core18

parts:
  mdl:
    source: https://github.com/snapcraft-docs/mdl.git
    plugin: ruby
    gems:
      - rake
      - bundler
      override-build: |
        snapcraftctl build
        rake install
      build-packages:
        - git

apps:
  mdl:
    command: bin/mdl

Show more

--------------------------------------------------------------------------------

Continue ›

--------------------------------------------------------------------------------


WHY ARE SNAPS GOOD FOR RUST PROJECTS?

 * Easy to discover and install by millions using the Snap Store or command-line
   every day.
 * Automatically updated to the latest stable version of your app.
 * Revert to the previous version if an update fails, preserving data.

You can distribute your apps across Linux using a musl-enabled version of Rust,
with all the dependencies satisfied. However, end user discovery and update
management remain a challenge. Snaps fill this gap, letting you distribute a
Rust app in an app store experience for end users.

In just a few steps, you’ll have an example Rust app in the Snap Store.

--------------------------------------------------------------------------------


HERE'S HOW XSV DEFINES SNAPCRAFT.YAML:

name: xsv
version: '1.0'
summary: A fast CSV command line toolkit written in Rust
description: |
  xsv is a command line program for indexing […]

confinement: devmode
base: core18

parts:
  xsv:
    plugin: rust
    source: https://github.com/snapcraft-docs/xsv.git

apps:
  xsv:
    command: bin/xsv

Show more

--------------------------------------------------------------------------------

Continue ›

--------------------------------------------------------------------------------


TESTIMONIALS


“THE AUTO-UPDATING FEATURE IS HUGE”

> Due to the nature of our platform, we release updates more than daily which
> admittedly can be annoying for our users to constantly update.
> 
> Therefore, having them done seamlessly in the background makes life for our
> users so much easier. It’s great to see snaps as the first serious attempt to
> try and unify the community.
> 
> Jeff Dickey
> CLI engineer, Heroku

--------------------------------------------------------------------------------


“STARTING WITH SNAPS
IS EASY”

> We definitely find Snapcraft easier as it is yaml based and provides details
> of what artifacts are needed. Debian packaging has things that need to be
> followed which can be distribution specific, which creates complication.
> 
> The modular containment is what appealed about snaps and [we] can see it will
> be a lot more flexible. Starting with snaps is easy and the resources that are
> provided are clean and structured which aids adoption.
> 
> Lee Coward and Rakesh Singh
> .NET (Microsoft)

--------------------------------------------------------------------------------


“A MAJOR SOFTWARE DISCOVERY TOOL”

> The Snap store provides additional exposure to our tools for many of our
> existing and potential users. The decision to use it came quite naturally. We
> believe the store will be a major software discovery tool on Linux, so the
> more people find out about our tools naturally and install them more easily,
> the better for everyone.
> 
> Aleksey Rostovskiy
> Engineer, JetBrains

--------------------------------------------------------------------------------


SHOWCASE TO MILLIONS

Reach beyond your existing audience with a listing on the Snap Store, the front
page for app discovery on Ubuntu and other popular distros.

Browse the Snap Store



--------------------------------------------------------------------------------


MEASURE USER GROWTH

Make data-driven decisions with active install metrics. Watch as automatic
updates migrate users to your latest release. Understand your audience with
geographic and version breakdowns.



Back to top

© 2023 Canonical Ltd.
Ubuntu and Canonical are registered trademarks of Canonical Ltd.
Powered by Charmed Kubernetes

Join the forum, contribute to or report problems with, snapd, Snapcraft, or this
site.

 * Share on Twitter
 * Share on Facebook
 * Share on YouTube

 * Terms of Service
 * Data privacy
 * Manage your tracker settings
 * Service status
 * Other functions


 * Canonical
   
   Get to know Canonical, the company behind the products.

 * Ubuntu
   
   The world's favourite Linux OS for servers, desktops and IoT.

 * Ubuntu Pro
   
   One subscription for security maintenance, support, FIPS and other compliance
   certifications.

 * Snapcraft
   
   The app store for Linux: secure packages and ultra-reliable updates.

 * LXD
   
   A pure-container hypervisor. Run system containers and VMs at scale.

 * MAAS
   
   Build a bare metal cloud with super fast server provisioning.

 * OpenStack
   
   Upgrades, maintenance, support, and fully managed options for long-term,
   low-cost infra.

 * Ceph
   
   Software-defined storage that lowers your total cost of ownership.

 * Kubernetes
   
   App portability for K8s on VMware, Amazon, Azure, Google, Oracle, IBM and
   bare metal.

 * Juju
   
   Deploy, integrate and manage applications at any scale, on any
   infrastructure.

--------------------------------------------------------------------------------

Also from Canonical
Anbox Cloud

Stream Android applications to any device.

Launchpad

The software collaboration platform behind Ubuntu.

Ubuntu on public clouds

Optimised Ubuntu for public clouds.

Multipass

Spin up Ubuntu VMs on Windows, Mac and Linux.

Cloud-init

Control and customise your cloud instances.

Landscape

Systems management and security patching for Ubuntu.

Netplan

Simplify and standardise complex network configuration.

Charmed Kubeflow

AI and MLOps at any scale, on any cloud.

MicroCloud

Deploy a fully functional cloud in minutes.

--------------------------------------------------------------------------------

About
 * Canonical
 * Press centre
 * Careers
 * Blog
 * Documentation
 * Resources
 * Partners
 * Contact us


YOUR TRACKER SETTINGS

We use cookies and similar methods to recognise visitors and remember
preferences. We also use them to measure campaign effectiveness and analyse site
traffic.

By selecting ‘Accept‘, you consent to the use of these methods by us and trusted
third parties.

For further details or to change your consent choices at any time see our cookie
policy.

Accept all and visit site Manage your tracker settings