The build system for large‑scale monorepos
Blade turns a sprawling C/C++ codebase into one declarative graph. Build, test, and run any set of targets with a single command — with automatic dependency analysis, incremental rebuilds, and parallel testing.
Linux primary · macOS & Windows experimental
$ curl -fsSL https://blade-build.github.io/install.sh | bash
One command, the whole loop
Point Blade at a directory pattern and it compiles, links, and tests everything it depends on.
$ blade test common/... Blade(info): Loading BUILD files... Blade(info): Analyzing dependency graph... [42/42] LINK common/rpc/rpc_test Blade(info): Building done. [ PASSED ] 128 tests in 18 targets Blade(info): All tests passed! $ blade build -pdebug //app/server # debug profile $ blade run //tools/cli -- --help # build & run
Designed for scale
The conventions that keep a million-line monorepo fast and correct.
Incremental & parallel
A Ninja backend rebuilds only what changed and runs builds and tests across all your cores.
Declarative BUILD files
Say what to build — targets, sources, direct deps — not how. Blade figures out the rest.
Multi-language
C/C++ first, plus Java, Python, Scala, Protocol Buffers, lex/yacc, and more in one graph.
Dependency-aware
Automatic dependency analysis and header-inclusion checks catch missing and unused deps early.
Testing built in
Incremental and parallel test execution, with coverage and continuous-integration in mind.
Battle-tested at scale
Powers core systems at Tencent and beyond — advertising, WeChat backends, infrastructure.
Speaks your stack
Mix languages in a single dependency graph and let Blade wire the toolchains together.
Build like the big repos do
Install Blade and run your first target in under a minute.
Blade