AerynOS/os-tools: The home of moss (system state and package manager) and boulder (moss-format build tool) (opens in new tab)

🛠️ OS Tools - Modern System State Management

📦 Core Tools

This repository provides two powerful Rust-based tools for managing .stone packages, the native package format for AerynOS:

  • moss: Advanced package & system state manager with atomic transactions and content deduplication
  • boulder: Modern package building tool with containerized builds and intelligent package splitting

🔧 Technical Overview

.stone Package Format

The .stone format is a structured binary package format designed for modern, rolling-release systems. It features:

  • Explicit versioning for seamless format changes

  • zstd compression for optimal storage

  • Content-addressable storage via xxhash

  • Smart payload separation:

  • 📋 Metadata: Package info and licensing with strong typing

  • 🗂️ Layout: Filesystem structure definitions

  • 📑 Index: Content payload access mapping

  • 📦 Content: Deduplicated file storage

System Architecture

  • Content-addressable /usr with atomic updates via renameat2
  • Private store and roots in /.moss
  • Container-based transaction triggers
  • Full USR merge compliance
  • Stateless system design with clear separation of OS and local system configuration
  • Quick system rollbacks through atomic operations

Boulder Features

  • YAML-based recipe format (stone.yaml, KDL coming soon ❤️)
  • Automatic subpackage splitting
  • Automatic provider emission (e.g. soname()) and dependency use
  • Uniform format for repos, manifests and packages
  • Integrated build sandboxing (also supports rootless builds)
  • Advanced compiler optimization profiles
  • Support for architecture-specific tuning

Note: Using latest Rust via rustup is recommended.

📊 Status

  • Read support for .stone
  • Repository manipulation
  • Plugin system for layered graph of dependencies
  • Search support
  • Transactions
  • Installation support
  • Removal support
  • sync support
  • Triggers
  • GC / cleanups of latent states
  • System model
  • Subscriptions (named dependency paths and providers to augment the model)

🚀 Onboarding

# clone the AerynOS os-tools repo somewhere reasonable
mkdir -pv ~/repos/aeryn-os/
cd ~/repos/aeryn-os/
git clone https://github.com/aerynos/os-tools.git
cd tools/

# Install a few prerequisites (this how you'd do it on AerynOS)
sudo moss it binutils glibc-devel linux-headers clang bsdtar-static cpio

# remember to add ~/.cargo/bin to your $PATH if this is how you installed rustfmt
cargo install rustfmt

# from inside the moss clone, this will build boulder and moss
# and install them to ${HOME}/.local/bin/ by default
just get-started

Loading more...

Keyboard Shortcuts

Navigation
Next / previous item
j/k
Open post
oorEnter
Preview post
v
Post Actions
Love post
a
Like post
l
Dislike post
d
Undo reaction
u
Save / unsave
s
Recommendations
Add interest / feed
Enter
Not interested
x
Go to
Home
gh
Interests
gi
Feeds
gf
Likes
gl
History
gy
Changelog
gc
Settings
gs
Browse
gb
Search
/
General
Show this help
?
Submit feedback
!
Close modal / unfocus
Esc

Press ? anytime to show this help