Rig Logo
Rig Build System

Zero Magic, Pure Power

Do anything you need with a general-purpose programming language:

// See the tutorial for how this code works!

c_files: []str = find_src_ext("src", "c");

o_files: []str =
foreach c_file: c_files
{
	o_file: str = c_file +~ ".o";

	target o_file: c_file
	{
		if config_bool["clang"]
		{
			$ gcc -c -o @(tgt) @(file_dep);
		}
		else
		{
			$ clang -c -o @(tgt) @(file_dep);
		}
	}

	o_file;
};

target "exec": o_files
{
	if config_bool["clang"]
	{
		$ gcc -o @(tgt) @(file_dep);
	}
	else
	{
		$ clang -o @(tgt) @(file_dep);
	}
}

target @all: "exec";

Run builds from the build directory or the source directory:


Set up one-step release builds for users:

Coming Soon!


Fully Cross-Platform


Incremental Builds


First-Class Cross-Compilation

Even for multiple platforms at once.

Dynamic Targets


Presets

Can’t remember a useful but complex build config? Save it as a preset!

Standard Library

Want your magic back? Rig will include an opt-in standard library.

Coming Eventually!


Too Much Power? Restrict the Language!


Curses-Like Configuration TUI


Language Server Protocol and Formatter Support for Rig/Yao


Rig/Yao Debugger


Multi-Project Builds for Monorepos


Sandboxing


Building Distributed Systems


Dynamic Build Permissions with Capabilities


Package Management

Nix for Mere Mortals

Rig is a professionally supported product of Yzena, LLC.