I was exploring ideas about how we could deliver charms recently, and wanted to try making a snap that acts like a charm, and a basic charm that wraps that snap and manages calling out to it, I give you: snapped-charm.
This example is also using a compiled language (Rust) because I wanted to explore the idea of using snaps to support independent architectures reasonably easily, something which is “easy” in Python or Bash, but less easy in compiled languages. I wanted to take the opportunity of using a snap to deliver the charm because a snap would let us be confident that all of a charm’s dependencies are available inside of the snap, rather than having to manage a wheelhouse
or installing dependencies at install time!