awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
ninja-build avatar

ninja-build/ninja

0
View on GitHub↗
13,034 stars·1,809 forks·C++·Apache-2.0·32 viewsninja-build.org↗

Ninja

Ninja is a low-level build system and executable designed to function as a backend for higher-level build generators. It serves as a build graph processor that evaluates build files to determine the optimal execution order for target dependencies and binaries.

The tool focuses on fast software compilation by executing commands based on dependency graphs to transform source code into binaries. It operates as an incremental build tool, utilizing file timestamps to manage build operations and recompile only the modified parts of a project.

The system manages build automation through automated dependency tracking and incremental build management. It utilizes a manifest-based build definition to execute build files and produce final binaries.

Features

  • Build System Backends - Functions as a high-performance execution backend for higher-level build generators.
  • Build Graph Processors - Evaluates build files to determine the optimal execution order for target dependencies.
  • Build Dependency Tracking - Tracks source file dependencies to prevent redundant compilation steps during incremental builds.
  • Manifest-Based Build Systems - Uses a flat, declarative manifest file to define explicit build rules and dependencies.
  • Incremental Build Systems - Tracks dependency graphs to ensure only modified parts of a project are recompiled.
  • Build Automation - Provides automated execution of build instructions and dependency management to produce final binaries.
  • External Task Orchestrators - Orchestrates the execution of arbitrary shell commands as build steps and monitors their exit codes.
  • Build Execution Engines - Provides a mechanism for running commands and scripts based on dependency graphs to compile software.
  • Build Execution Backends - Acts as a low-level execution layer that processes complex dependency graphs for software compilation.
  • Build Systems - Automates the transformation of source code into executable binaries using dependency-graph-based execution.
  • Build System Backends - Designed as a focused build engine to function as a backend for higher-level build generators.
  • High-Performance Build Execution - Focuses on maximum execution speed when transforming source code into binaries via low-level build instructions.
  • Directed Acyclic Graph Engines - Implements a build engine that traverses a directed acyclic graph to ensure prerequisites are compiled before dependents.
  • Parallel Build Schedulers - Distributes independent build tasks across multiple CPU cores to maximize compilation throughput.
  • Build Systems - Focuses on speed for small and simple build tasks.
  • Package Management - High-performance build system for generated input files.

Star history

Star history chart for ninja-build/ninjaStar history chart for ninja-build/ninja

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Ninja

Similar open-source projects, ranked by how many features they share with Ninja.
  • facebook/buckfacebook avatar

    facebook/buck

    8,542View on GitHub↗

    Buck is a multi-language build system and modular build orchestrator designed to compile and package software modules across different programming languages and hardware platforms. It functions as a hermetic build tool, isolating the build process from the host system to ensure consistent and reproducible outputs. The system manages polyglot software builds by organizing code into small, independent units to facilitate faster compilation. It operates as a cross-platform package manager that creates and distributes software components across various operating systems and language ecosystems.

    Javaandroidbuckbuild-tool
    View on GitHub↗8,542
  • moby/buildkitmoby avatar

    moby/buildkit

    10,061View on GitHub↗

    Buildkit is a programmable container build toolkit and OCI container image builder that converts build definitions into concurrent dependency graphs for image construction. It functions as an OCI image distribution engine, capable of generating container images and exporting artifacts to local storage or remote registries. The project is distinguished by its use of a low-level binary intermediate representation to decouple high-level build languages from the execution engine. It supports multi-platform image builds through user-mode architecture emulation and provides a distributed build cach

    Gobuilderbuildkitcloud-native
    View on GitHub↗10,061
  • pr0g/cmake-examplespr0g avatar

    pr0g/cmake-examples

    1,231View on GitHub↗

    This project provides a collection of minimal, modern configuration templates designed to demonstrate industry-standard practices for managing C and C++ build workflows. It serves as a practical guide for developers to implement build automation, dependency management, and project structuring using the CMake build system. The repository distinguishes itself by offering modular examples that cover complex build requirements, such as hierarchical project organization and the integration of external third-party source code. It emphasizes the use of target-based dependency graphs and interface-ba

    CMakecmakecmake-examplescmake-scripts
    View on GitHub↗1,231
  • dagger/daggerdagger avatar

    dagger/dagger

    15,970View on GitHub↗

    Dagger is a programmable CI/CD engine and containerized task runner designed to orchestrate build and test pipelines. It functions as an incremental build system that manages containers, filesystems, and secrets through a typed API to ensure consistent execution across local and cloud environments. The engine utilizes a language-agnostic client-server API to allow multi-language pipeline orchestration, enabling the sharing of typed artifacts and state across different SDKs without manual serialization. It optimizes execution through content-addressable caching and a directed acyclic graph to

    Go
    View on GitHub↗15,970
See all 30 alternatives to Ninja→

Frequently asked questions

What does ninja-build/ninja do?

Ninja is a low-level build system and executable designed to function as a backend for higher-level build generators. It serves as a build graph processor that evaluates build files to determine the optimal execution order for target dependencies and binaries.

What are the main features of ninja-build/ninja?

The main features of ninja-build/ninja are: Build System Backends, Build Graph Processors, Build Dependency Tracking, Manifest-Based Build Systems, Incremental Build Systems, Build Automation, External Task Orchestrators, Build Execution Engines.

What are some open-source alternatives to ninja-build/ninja?

Open-source alternatives to ninja-build/ninja include: facebook/buck — Buck is a multi-language build system and modular build orchestrator designed to compile and package software modules… moby/buildkit — Buildkit is a programmable container build toolkit and OCI container image builder that converts build definitions… pr0g/cmake-examples — This project provides a collection of minimal, modern configuration templates designed to demonstrate… dagger/dagger — Dagger is a programmable CI/CD engine and containerized task runner designed to orchestrate build and test pipelines.… moonrepo/moon — Moon is a monorepo build system and task runner designed to orchestrate complex projects with multiple packages. It… gradle/gradle — Gradle is a build automation tool for the Java Virtual Machine that functions as a polyglot build orchestrator. It…