Bazel
A scalable build and test tool.
Bazel is the open-source release of Google's internal build tool Blaze. It excels at very large mono-repositories where rebuild correctness and incrementality are critical: Bazel builds are hermetic (sandboxed away from the host environment), reproducible (identical inputs produce identical outputs at the byte level), and parallel by default. The same rules describe builds, tests, and deployable artefacts across many languages.
Bazel supports C++, Java, Go, Python, Rust, Scala, Kotlin, JavaScript/TypeScript, Swift, Objective-C, Android, and iOS out of the box, with community rule sets for many other languages. The starlark configuration language (a deterministic Python dialect) is shared with Buck, Pants, and several other build tools that have followed Bazel's lead.
Beyond Google itself, Bazel sees adoption at companies with very large codebases — Stripe, Pinterest, Uber, Two Sigma, Spotify — where the cost of switching from a more conventional tool is justified by the speedup on a million-line repository. Remote build caches and remote execution clusters can take a 30-minute build down to seconds when many engineers are sharing a cache.
Install
Debian/Ubuntu: see https://bazel.build/install/ubuntu Fedora/RHEL: see https://bazel.build/install/redhat Arch (AUR): yay -S bazel macOS: brew install bazel
Authors
- Google (open-sourced 2015)
- Bazel community