ninja

In the realm of computer science, particularly within build systems, Ninja refers to a small build system designed for speed. Unlike Make, which focuses on feature richness and script interpretation, Ninja concentrates on executing build steps as quickly as possible. It achieves this by using a simple, deterministic build file format that is typically generated by a higher-level build system like CMake or Meson. These higher-level systems handle dependency resolution and configuration, and then translate the build instructions into Ninja’s format. Ninja then takes over, parsing the build file and executing the commands in parallel to minimize build times. Its primary goal is to be the fastest possible way to execute a pre-determined build process, rather than providing the tools to define that process.