macOS
brew install ninjalocal Homebrew formula metadata
sudo port install ninjaMacPorts ports tree · devel/ninja/Portfile · source: api.github.com
brew
Small build system for use with gyp or CMake. Version 1.13.2 via Homebrew; verified from local package data.
install
brew install ninjalocal Homebrew formula metadata
sudo port install ninjaMacPorts ports tree · devel/ninja/Portfile · source: api.github.com
nix profile install nixpkgs#ninjanixpkgs package indexes · pkgs/by-name/ni/ninja/package.nix · source: api.github.com
sudo pacman -S ninjaArch Linux sync databases · ninja · source: geo.mirror.pkgbuild.com
sudo zypper install ninjaopenSUSE Tumbleweed package metadata · ninja · source: download.opensuse.org
choco install ninjaChocolatey community package catalog · ninja · source: community.chocolatey.org
scoop install main/ninjaScoop official bucket manifest trees · bucket/ninja.json · source: api.github.com
winget install --id Ninja-build.Ninja -eWindows Package Manager source index · Ninja-build.Ninja · source: cdn.winget.microsoft.com
overview
Small build system for use with gyp or CMake
history
Ninja is a small, low-level build system optimized for fast incremental builds. Its central idea is deliberately narrow: higher-level tools such as GN, GYP, CMake, Meson, or custom generators decide the project model, and Ninja executes the already-lowered build graph quickly.
Evan Martin wrote Ninja while working on Google Chrome. In his Performance of Open Source Software chapter, he says he started Ninja in 2010 as an experiment to make Chrome builds faster, especially the front of the build where the tool loads build files and starts the first compile. This led to the design that made `.ninja` files simple, generated, and quick to parse.
The project became public and then broadened beyond Chrome. The same history says Ninja gradually replaced other build systems used by Chrome, CMake gained a Ninja generator, and projects such as LLVM and ReactOS used it through CMake. The Ninja homepage later summarized the tool as an assembler-like build system used by Google Chrome, parts of Android, LLVM, and many CMake-backed projects.
Ninja's adoption is unusually strong for such a small tool because it sits at the bottom of many developer workflows. Developers may never hand-write `build.ninja`, but they install Ninja because CMake, Meson, GN, or language build systems generate it and expect a fast executor.
On 2026-07-01, Homebrew listed Ninja 1.13.2 with 545,459 installs over 365 days and 352,367 installs-on-request. That install volume is a package-manager reflection of Ninja's role as a build substrate rather than a tool people necessarily think about directly.
The normal package-nerd workflow is `cmake -G Ninja -S . -B build` or a Meson/GN equivalent, followed by `ninja -C build`. By default, `ninja` looks for `build.ninja` in the current directory and builds all out-of-date targets; flags such as `-C` and `-j` intentionally resemble Make, although Ninja already runs jobs in parallel by default.
Ninja build files are plain text and debuggable, but the project explicitly does not optimize for hand authoring. This makes the package easy to reason about in dependency graphs: if a formula or language package depends on Ninja, it usually means some higher-level generator will emit the actual build plan.
Ninja is one of the canonical examples of doing less and winning: no general-purpose project language, no rich conditionals, no policy layer, just a fast executor. Its package significance is huge because it became the common backend for CMake/Meson/GN-era native builds across macOS, Linux, Windows, and cross-platform CI.
security posture
build system capable of executing project logic.
yellow risk · high confidence · runtime
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
executables
| Command | Kind | Exposure | Note |
|---|---|---|---|
ninja | cli | global executable |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
https://github.com/ninja-build/ninja
install metadata
| Package key | brew:ninja |
|---|---|
| Version | 1.13.2 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/ninja |
| Homepage | https://ninja-build.org/ |
| Repository | https://github.com/ninja-build/ninja |
| Upstream docs | https://ninja-build.org/manual |
| License | Apache-2.0 |
| Source archive | https://github.com/ninja-build/ninja/archive/refs/tags/v1.13.2.tar.gz |
| Bottle | available (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sequoia, sonoma, tahoe, x86_64_linux) |
| Homebrew post-install | not defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | ninja |
| Version Scheme | 0 |
| Revision | 0 |
| Head Version | HEAD |
| Bottle Stable Root URL | https://ghcr.io/v2/homebrew/core |
| Deprecated | no |
| Disabled | no |
| Keg Only | no |
| URL Keys |
|
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
ninja
nix profile install nixpkgs#ninjaninja 1.13.2-3
Small build system with a focus on speed
sudo pacman -S ninjaninja 1.13.2-1.3
A small build system closest in spirit to Make
sudo zypper install ninjaninja
sudo port install ninjaninja
choco install ninjamain/ninja
scoop install main/ninjaNinja-build.Ninja
winget install --id Ninja-build.Ninja -esource trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.