About this project

Netsuke acts as a high-level wrapper for the Ninja build system, allowing users to define build rules, targets, and dependencies using a readable YAML format combined with Jinja templating for dynamic planning (including variables, macros, and globbing). Key capabilities include: - Manifest Parsing: Supports YAML 1.2 with schema validation. - Dynamic Planning: Utilizes Jinja for conditional logic (`when`), loops (`foreach`), and environment helpers. - Static Execution: Generates a validated Ninja build graph, which can be inspected or rendered as Graphviz DOT/HTML before execution. - Toolchain Agnostic: Works with any command-line based toolchain (e.g., Rust, C, Python). - Diagnostics: Provides source-aware errors, progress reporting, and machine-readable JSON output. - Cross-Platform Support: Includes execution paths for Unix shells and Windows PowerShell/Bash.