Toolchain backends

On one hand,
Riders.

A Rider connects a source extension to the compiler, linker, or packaging action that builds it. The project graph stays language agnostic; the Rider owns language-specific tool behavior.

Selection

Source extension chooses the path.

A generic executable target selects its Rider from the first source extension. C and C++ share the native object, dependency-file, parallel compilation, and link pipeline. Other Riders use a direct backend action and detect their tool only when the target needs to build.

project "hello" {
    executable "hello" {
        sources = ["src/main.go"]
        install = true
    }
}
Catalog

Built-in Riders.

C.c

cc, clang, or gcc · Native compile, link, static, and shared-library path.

C++.cpp, .cc, .cxx

c++, clang++, or g++ · Native C++ compiler and linker path.

Rust.rs

rustc or cargo · Direct rustc builds, or Cargo for a Rust executable with Cargo.toml.

Haskell.hs, .lhs

ghc · Builds an executable through GHC.

D.d

ldc2, dmd, or gdc · Builds a native executable.

Go.go

go · Builds a native executable through go build.

Java.java

javac and jar · Compiles classes and packages a JAR.

C#.cs

csc or mcs · Builds an executable through the detected compiler.

Swift.swift

swiftc · Builds a native executable.

Zig.zig

zig · Builds an executable with zig build-exe.

Python.py

python3 or python · Syntax-checks and packages the script.

JavaScript.js, .jsx

node · Syntax-checks and packages the script.

TypeScript.ts, .tsx

tsc · Transpiles to CommonJS JavaScript.

Kotlin.kt, .kts

kotlin or gradle · Builds a runnable JAR.

Run nox riders to print this registry from the installed binary. Missing tools produce a specific error when a build reaches that Rider.

Boundaries

Riders build; Runners execute.

A Rider is used for project targets and artifacts. Direct-file execution with nox run path/to/file uses the separate Runner registry, which may require a runtime or compile a temporary artifact.