burgerlogo

Why I Built Cosmos: A Package Manager for the Broken Edge

Why I Built Cosmos: A Package Manager for the Broken Edge

avatar
Ray Thomas

- Last Updated: May 5, 2025

avatar

Ray Thomas

- Last Updated: May 5, 2025

featured imagefeatured imagefeatured image

When you're building for embedded Linux, recovery environments, or edge devices out in the wild, things eventually break. Systems fail. Dependencies disappear. Networks go down. Sometimes you're staring at a shell prompt on a device that barely boots and has no internet access. And you still need to install software.

That's where this started.

I'm a developer working in the IoT and embedded systems space, and I kept running into the same problem: traditional package managers weren't built for this. They're great on full-blown distros, but they rely on assumptions—shell access, runtime dependencies, dynamic linking, internet connectivity—that simply don't hold up on edge nodes or in recovery environments.

So I built Cosmos.

in-action.png

Cosmos is a minimalist, offline-first package manager designed for when your system is on fire—or when you're working with systems that can't afford the bloat of traditional distros. Written in Rust, musl-compatible, and fully static, Cosmos doesn't need a shell, a scripting runtime, or even internet access. It's designed for environments where everything else has failed—or never existed in the first place.

What Makes Cosmos Different

Cosmos isn't trying to be APT, Pacman, DNF, or Nix. It's built for a different job:

  • Fully Static Binaries: Cosmos compiles down to a single <4MB static binary with no dynamic linker requirements. It works in initramfs, Docker scratch images, embedded filesystems, and broken systems.
  • Zero Runtime Dependencies: No Python, Bash, or libc expectations. If your device can run a static ELF binary, it can run Cosmos.
  • Offline-First: You can host Cosmos packages (called Stars) from a local USB stick, SD card, internal file server, or even python3 -m http.server. No internet? No problem.
  • Scriptable with Lua (Nova): Instead of relying on shell scripts for builds and installs, Cosmos uses safe, embedded Lua scripts called Nova scripts. They're fast, portable, and clean.
  • Package Builder Included (Stellar): You can define a new package, fetch its source, and build it with one command using stellar. No Makefiles, no YAML DSLs, no mystery.

     

stellar.png

Built for Embedded, Minimal, and Recovery Environments

Cosmos was built to solve the exact problems we see in embedded development and edge IoT workflows:

  • Provisioning field devices where full distros aren't practical
  • Replacing traditional package managers like apk in minimal builds
  • Recovering bricked or broken systems from read-only media
  • Building custom minimal Linux environments with predictable dependencies
  • Deploying from cold start without relying on package mirrors or internet access

Whether you're trying to recover a device or building one that should never need recovery, Cosmos has your back.

Designed for Developers Who Know the Pain

This project wasn’t built as a hypothetical. It was written by someone who's had to fix broken systems with tarballs and sheer force of will. The first version of Cosmos was built in a 3-day sprint and evolved into a structured, extensible system over a week.

ldd.png

And yes—it's already usable.

Cosmos is open source (MIT), actively maintained, and structured for long-term reliability. If you're working in embedded Linux, IoT recovery, or minimal system bootstrapping, give it a look.

It might save your future self from a long weekend of regret.

Need Help Identifying the Right IoT Solution?

Our team of experts will help you find the perfect solution for your needs!

Get Help