Il formato di file .ninja è un file di configurazione del sistema di build utilizzato da Ninja, un sistema di build compatto focalizzato sulla velocità di esecuzione. A differenza di altri sistemi come Make o CMake, progettati per essere leggibili dall'uomo e ricchi di funzionalità, i file Ninja sono concepiti per essere generati da sistemi di build di livello superiore ed eseguiti il più rapidamente possibile. Un file .ninja contiene un elenco di regole di build e archi di build (build edges). Le regole definiscono come trasformare i file di input in file di output, mentre gli archi definiscono le istanze specifiche di tali regole, mappando input specifici su output specifici. Poiché Ninja è ottimizzato per la velocità, eccelle in progetti software su larga scala in cui le build incrementali devono essere eseguite in pochi millisecondi. Il formato è rigorosamente strutturato per evitare l'overhead di una complessa risoluzione delle dipendenze in fase di runtime, rendendolo il backend preferito per molti moderni flussi di lavoro di sviluppo C++, in particolare se utilizzato in combinazione con CMake.