Skip to content

FyraLabs/anda

Folders and files

NameName
Last commit message
Last commit date
Oct 20, 2022
Oct 14, 2022
Feb 17, 2025
Oct 20, 2022
Oct 4, 2022
Mar 29, 2025
Mar 29, 2025
Sep 24, 2022
Mar 17, 2025
Jan 27, 2023
Apr 14, 2025
Aug 29, 2022
Aug 30, 2022
Aug 24, 2022
Sep 23, 2022
Apr 14, 2025
Apr 7, 2025
Jul 16, 2024
Oct 29, 2023
Jan 25, 2023
Dec 13, 2024
Jan 4, 2025
Mar 29, 2025
Mar 29, 2025
Jan 14, 2023

Repository files navigation

Andaman Project

Andaman

Andaman is a package build toolchain written in Rust. It is designed to simplify building various types of packages.

It is inspired by umpkg and aims to be a more modern and flexible alternative. It is also designed for monorepos in mind, so you can define multiple projects with multiple package formats in a single repository.

You can look into the Fyra Wiki page and the Terra Devdocs for more technical details.

Installation

On systems with Terra, you can install it with sudo dnf5 in anda (or dnf).

On systems with Cargo, you can install it with cargo install anda.

Alternatively you can also manually download the sources from GitHub:

git clone https://github.com/FyraLabs/anda
cd anda
git checkout 0.1.18
cargo install --path .

How it works

Andaman is simply a meta-build system that calls upon other build systems to build and distribute packages. It works by reading a project manifest in anda.hcl and then calling the appropriate build system to build the package.

Features

  • Building RPMs
  • Building Docker/Podman/OCI images
  • Building Flatpak packages

How we use it at Fyra Labs

We use Andaman to quickly build packages for our distributions, Ultramarine Linux and TauOS. Another notable usage is the Terra repository, which provides more than 1000 packages for Fedora-based distributions. The artifacts generated by Andaman are then sent to Subatomic, our compose and repository manager.

History

The Andaman project has gone through many forms. We initially wrote Andaman as a custom RPM frontend as an alternative to DNF that is similar to that of an AUR helper. However, there were issues with rust and RPM support and we decided to move to a more general CI server based on BuildKit. This however turned into a massive feature creep of projects and so we decided to simply write a build system that can build artifacts for various package formats.