{"id":25049240,"url":"https://github.com/silitics/rugix","last_synced_at":"2025-04-14T05:35:20.424Z","repository":{"id":182268599,"uuid":"642546697","full_name":"silitics/rugix","owner":"silitics","description":"A suite of open-source tools to build reliable embedded Linux devices with efficient and secure over-the-air update capabilities.","archived":false,"fork":false,"pushed_at":"2025-02-01T15:13:13.000Z","size":1917,"stargazers_count":47,"open_issues_count":6,"forks_count":4,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-02-01T15:24:48.871Z","etag":null,"topics":["alpine","debian","embedded","images","iot","over-the-air-update","raspberry-pi"],"latest_commit_sha":null,"homepage":"https://rugix.org","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/silitics.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-18T20:21:06.000Z","updated_at":"2025-02-01T14:19:59.000Z","dependencies_parsed_at":"2024-02-16T01:25:19.064Z","dependency_job_id":"dd39839a-96eb-4be3-abc4-cd48518fc1f0","html_url":"https://github.com/silitics/rugix","commit_stats":{"total_commits":367,"total_committers":2,"mean_commits":183.5,"dds":"0.0027247956403270157","last_synced_commit":"b7f39ccb358ddf80b6ed7b5d5fced372fcfeb6d6"},"previous_names":["silitics/rugpi","silitics/rugix"],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silitics%2Frugix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silitics%2Frugix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silitics%2Frugix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silitics%2Frugix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/silitics","download_url":"https://codeload.github.com/silitics/rugix/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248828994,"owners_count":21168129,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alpine","debian","embedded","images","iot","over-the-air-update","raspberry-pi"],"created_at":"2025-02-06T08:17:06.552Z","updated_at":"2025-04-14T05:35:20.403Z","avatar_url":"https://github.com/silitics.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"./www/static/img/logo.svg\" width=\"12%\" alt=\"Rugix Logo\"\u003e\n\u003c/p\u003e\n\u003ch1 align=\"center\"\u003e\n    Rugix\n\u003c/h1\u003e\n\u003ch4 align=\"center\"\u003e\n    An open-source tool suite to build \u003cem\u003ereliable\u003c/em\u003e embedded Linux devices\n    \u003cbr\u003ewith \u003cem\u003eefficient and secure\u003c/em\u003e over-the-air update capabilities.\n\u003c/h4\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/silitics/rugix/releases\"\u003e\u003cimg alt=\"Rugix Version Badge\" src=\"https://img.shields.io/github/v/tag/silitics/rugix?label=version\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/silitics/rugix/actions\"\u003e\u003cimg alt=\"Pipeline Status Badge\" src=\"https://img.shields.io/github/actions/workflow/status/silitics/rugix/check-and-lint.yml\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n💡 **TL;DR**: Rugix (formerly Rugpi) is a suite of open-source tools to **build and deploy reliable embedded Linux devices at scale with efficient and secure over-the-air update capabilities**.\nCompanies around the world use Rugix as a basis for their connected products.\nCurrently, the tool suite consists of two main tools:\n\n- **Rugix Ctrl**: On-device tool for installing over-the-air updates and managing state.\n- **Rugix Bakery**: Flexible, user-friendly build system for bespoke Linux distributions.\n\nWhile these tools are designed two work seamlessly together, **they can be used independently**.\nBy providing a unified and efficient modern development workflow, **Rugix enables better results at a lower cost**.\n\n[**Get started today! Build your first system and deploy an update, all in under 30 minutes!**](https://rugix.org/docs/getting-started) 🚀\n\n\n## Rugix Ctrl: The Update Mechanism\n\nRugix Ctrl has all features you would expect from a state-of-the-art update solution and more:\n\n- **Atomic A/B system updates** with popular bootloaders out of the box.\n- **Streaming updates** as well as **adaptive delta updates** out of the box.\n- Builtin **cryptographic integrity checks** _before_ installing anything anywhere.\n- Supports **any update scenario**, including **non-A/B updates and incremental updates**.\n- Supports **any bootloader and boot process** through [custom _boot flows_](https://rugix.org/docs/ctrl/advanced/boot-flows).\n- **Robust state management mechanism** inspired by container-based architectures.\n- Integrates well with [different fleet management solutions](https://rugix.org/docs/ctrl/advanced/fleet-management) (avoids vendor lock-in).\n- Provides powerful interfaces to built your own update workflow upon.\n\nRugix Ctrl **supports or can be adapted to almost any requirements you may have** when it comes to robust and secure updates of your entire system as well as its individual components.\n\n[For details, check out Rugix Ctrl's documentation.](https://rugix.org/docs/ctrl)\n\n\n## Rugix Bakery: The Development Tool\n\nYou wrote your application and now need to integrate it into a full system ready to be flashed onto your device or deployed as an update?\nRugix Bakery makes this process (almost) **as easy as writing a Dockerfile, enabling you to focus on what provides value to your users** instead of system-level details.\n\n- Build upon proven distributions such as **Debian and Alpine Linux**.\n- **Over-the-air update capabilities** powered by Rugix Ctrl out of the box.\n- Build everything **from source to image in a container-based environment**.\n- Define **multiple system variants**, including variants for testing.\n- Builtin **system testing framework** and **support for running VMs**.\n\nWith Rugix Bakery, you get a **comprehensive tool to build, test, and run your system** similar to what you will find with modern software development tooling, like [Cargo](https://doc.rust-lang.org/cargo/) (Rust) or [uv](https://docs.astral.sh/uv/) (Python).\n\n[For details, check out Rugix Bakery's documentation.](https://rugix.org/docs/bakery)\n\n\n## Why Rugix?\n\nRugix has been started out of frustration with the current state of the embedded Linux ecosystem.\nWhile there are already tools for building images, updating systems, and managing state, integrating them into a robust, coherent solution remains a significant challenge.\nWith Rugix, we aim to **simplify the development of embedded Linux devices by providing a unified, modern suite of tools that seamlessly integrate** to provide an efficient workflow for building, updating, and managing embedded Linux systems at scale.\nWe believe that **building embedded Linux devices should not be as complicated as it often is today**.\n\nWhile simplicity is our first key tenet, our second is to **provide solutions that are absolutely robust**.\nEmbedded devices must stay operational no matter what, always, anywhere.\nWith Rugix, we **make it easy to follow best practices** for building reliable devices, like read-only system partitions, fully atomic updates with on-device validation, and declarative, ideally fully reproducible builds.\n\n\n## ⚖️ Licensing\n\nThis project is licensed under either [MIT](https://github.com/silitics/rugix/blob/main/LICENSE-MIT) or [Apache 2.0](https://github.com/silitics/rugix/blob/main/LICENSE-APACHE) at your opinion.\n\nUnless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache 2.0 license, shall be dual licensed as above, without any additional terms or conditions.\n\n---\n\nMade with ❤️ for OSS by [Silitics](https://www.silitics.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsilitics%2Frugix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsilitics%2Frugix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsilitics%2Frugix/lists"}