Skip to main content

Version 0.8

Β· 4 min read
Maximilian KΓΆhl
CEO Silitics

We are excited to announce the release of Rugix (formerly Rugpi) version 0.8. πŸŽ‰ This release marks a significant milestone for the project. With this release, we rename the project from Rugpi to Rugix, cleanly separate Rugix into two independent tools, Rugix Ctrl and Rugix Bakery, and furthermore add a myriad of new and exiting features to both tools. Read on to learn more! πŸš€

Rename to Rugix​

When we started this project in 2023, we focused on Raspberry Pi and its Tryboot mechanism for A/B system updates. At the time, there was no ready-made open-source solution supporting it and we also wanted a clean way to build upon the existing Raspberry Pi OS releases. In June 2024, we then released Rugpi version 0.7 with support for generic EFI systems, Debian, and Alpine Linux, expanding the scope beyond Raspberry Pi. With this release, we change the name to Rugix to better capture that the tools we develop are applicable and intended to be used beyond the Raspberry Pi.

Tool Separation​

Previously, there was no clean separation between the on-device system management tool (formerly rugpi-ctrl) and the build system (formerly Rugpi Bakery). With this release we separate these two tools, enabling their independent usage. While Rugix Bakery is still more closely tied to Rugix Ctrl, Rugix Ctrl is now completely independent and can be used as a standalone update installer. At the same time Rugix Ctrl gained a lot more features (details below), making it competitive with respect to established standalone solutions such as SWUpdate or RAUC. Rugix Ctrl is now suitable for almost any use case where robust and secure over-the-air updates are required.

Rugix Ctrl​

Rugix Ctrl now provides almost all features you would expect from a modern update solution and more:

  • Atomic A/B system updates with popular bootloaders out of the box.
  • Streaming updates as well as adaptive delta updates out of the box.
  • Builtin cryptographic integrity checks before installing anything anywhere.
  • Supports any update scenario, including non-A/B updates and incremental updates.
  • Supports any bootloader and boot process through custom boot flows.
  • Robust state management mechanism inspired by container-based architectures.
  • Integrates well with different fleet management solutions (avoids vendor lock-in).
  • Provides powerful interfaces to built your own update workflow upon.

This means that you can now use Rugix Ctrl much more broadly, e.g., also to apply incremental updates to device configurations or as part of a non-A/B setup with a recovery system.

One of the flagship features of this release are adaptive delta updates: Rugix Ctrl can now directly download updates from an HTTP server while skipping parts of the update which are already locally available, e.g., as part of the old version. When you have devices in the field on a metered connection, this can significantly reduce the bandwidth required and cost to do a system update. This functionality can be used with any HTTP server supporting HTTP range queries.

Rugix Bakery​

Rugix Bakery also gained some new functionality. In particular, you can now directly run VMs based on system images and there is an experimental system testing framework. We strive for Rugix Bakery to become a comprehensive development tool for embedded Linux devices, similar to what you will find with modern software development tooling, like Cargo (Rust) or uv (Python). As such, it now already provides a single entrypoint to build, test, and run your system.

Discord Community​

Join our new Discord community of Rugix users and anyone interested in it! You can ask questions there, discuss ideas, and exchange information with others. πŸ™Œ

Upgrading from Version 0.7​

⚠️ With version 0.8 we introduced a few backwards-incompatible changes to the image building pipeline and Rugix Ctrl's CLI. Checkout, the how to upgrade guide for details.