Nox Object Modeling Language
Rules that stay
readable.
NOML is the small object-modeling language used by Nox for embedded rules and structured configuration. The standalone crate provides a parser, serializer, command-line interface, and formatter.
Objects, arrays, and rulesets.
ruleset "commands" {
command: build {
aliases: ["b", "compile"]
rules: {
requires_project: true
accepts_files_as_input: false
}
}
}NOML supports scalar values, nested objects, arrays, comments, rulesets, named entries, and entry inheritance with extends. Parsed extensions are resolved before the value is returned.
Use NOML outside Nox.
cd noml
cargo build
cargo run -- parse demo.noml
cargo run -- check demo.nomlThe noml package contains src/lib.rs for embedding the parser and a default CLI for parsing, checking, and formatting files. It is an independent Rust project under the Nox repository.
Canonical output in one command.
cd noml
cargo run -- format rules.noml
cargo run --bin nomlfmt -- rules.nomlBoth format commands parse and serialize the file in place. The library also exposes format_text, format_file, and format_file_in_place helpers for tools and editor integrations.
Rules are data, not hard-coded branches.
Nox embeds NOML rule files for base commands and project initialization. Those rules describe command aliases, accepted inputs, language metadata, target relationships, flags, and generated templates. The Rust implementation loads them through the NOML parser at runtime.