Born at Tencent · Open source since 2012

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

Install in one line
$ 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.

bash — blade
$ 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.

C / C++ Java Python Scala Protocol Buffers Thrift lex / yacc SWIG CUDA

Build like the big repos do

Install Blade and run your first target in under a minute.