Ninja to mały system budowania z naciskiem na szybkość.Różni się od innych systemów kompilacji pod dwoma głównymi względami: jest zaprojektowany tak, aby jego pliki wejściowe były generowane przez system kompilacji wyższego poziomu i jest zaprojektowany do uruchamiania kompilacji tak szybko, jak to możliwe.