The .ninja file format is a build system configuration file used by Ninja, a small build system with a focus on speed. Unlike other build systems like Make or CMake, which are designed to be human-readable and feature-rich, Ninja files are designed to be generated by higher-level build systems and executed as quickly as possible. A .ninja file contains a list of build rules and build edges. Rules define how to transform input files into output files, while edges define the specific instances of these rules, mapping specific inputs to specific outputs. Because Ninja is optimized for speed, it excels in large-scale software projects where incremental builds must be performed in milliseconds. The format is strictly structured to avoid the overhead of complex dependency resolution at runtime, making it the preferred backend for many modern C++ development workflows, particularly when paired with CMake.