The Nox Build System

The Nox Build
System & Task Runner

Nox is a Rust build system and task runner. It reads a project graph from nox.build, validates the dependencies, detects the required toolchain, and executes only the work needed for the selected build.

First build

For a new project.

01nox init hello --language c

Create a starting project, or write nox.build yourself.

02cd hello && nox setup build

Parse the project and record its build state and toolchain.

03nox build -C build -j8

Validate and execute targets in dependency order.

04nox run -C build

Build the selected executable, then forward any arguments after --.

How it works

A project file, a task file, distinct responsibilities.

01

Declare

nox.build defines projects, targets, sources, flags, dependencies, metadata, and installation intent. It is the build graph, not a shell script.

Read the nox.build guide
02

Configure

nox setup finds the project root, parses the declarations, detects native tools, and writes state for a debug or release configuration.

Understand toolchain detection
03

Automate

An optional noxfile contains named tasks. Tasks can depend on other tasks or Nox commands, run shell commands, and interpolate project values.

Read the noxfile guide

Built-in backends

The graph stays language-neutral.

Nox selects a Rider from source extensions, then keeps dependency traversal and build state independent of the compiler being used.

FamilyLanguagesRole
NativeC, C++, D, RustCompiled targets, libraries, dependency-aware builds
ManagedJava, Kotlin, C#, Q#JAR and .NET-oriented build paths
RuntimePython, JavaScript, Ruby, F#File handlers and runnable project targets
OtherGo, Swift, Zig, TypeScriptBuilt-in Riders with language-specific output
Browse Riders and Runners