Bazel is a fast, scalable, multi-language and extensible build tool open-sourced by Google. It supports software projects of any size across Java, C++, Go, Python, Rust, Swift, Kotlin, Scala, Android, iOS, and many other languages and platforms. Bazel uses a hermetic, sandboxed execution model with content-addressable caching, parallel builds, and remote execution. The project ships the `bazel` CLI, the Starlark extension language for build rules, the MODULE.bazel external-dependency system (Bzlmod), and the Bazel Central Registry — a public HTTP index registry that hosts community-maintained Bazel modules.
Bazel publishes 2 APIs on the APIs.io network: Modules API and Registry API. Tagged areas include Build Systems, Build Tools, Bzlmod, CI/CD, and Developer Tools.
The Bazel catalog on APIs.io includes 1 JSON-LD context and 2 Spectral governance rulesets.
Bazel’s developer surface includes developer portal, documentation, getting-started guide, API reference, engineering blog, changelog, Stack Overflow tag, and 45 more developer resources.
Create-or-Update Ergonomics does not apply to this provider. The published contracts declare
no write operations, and a read-only API cannot create-or-update. The facet is excluded from this provider's
denominator entirely — not scored zero. A reference or data API is not deficient for being unable to
upsert.
Improve this rating by publishing the missing artifacts — every area above can be raised, and the full rubric is at apis.io/rating/. Every facet and dimension name above is a link: it opens that measurement's own page — what it means, the exact checks that feed it, how the whole catalog distributes on it, and the providers at the top of it. This rating is computed from github.com/api-evangelist/bazel-build: open an issue to ask a question, or submit a pull request to add artifacts.
Submit an artifact on GitHub — free →Manage your own listing — the Influence plan, $499/mo →
The `bazel` command line tool is the primary user-facing surface of Bazel. It exposes commands such as `build`, `test`, `run`, `query`, `cquery`, `aquery`, `mod`, `fetch`, `info...
Bazel's build rules, macros, and module extensions are written in Starlark — a deterministic Python dialect. The Starlark Build API exposes the rule(), repository_rule(), module...
Bazel speaks the open Remote Execution API (REAPI), a gRPC protocol for content-addressable storage and distributed action execution. REAPI lets Bazel offload compile, test, and...
The Build Event Protocol (BEP) is Bazel's structured stream of build events — target configured, progress, test results, action executed, build finished — emitted during every i...
One build tool spans Java, C++, Go, Python, Rust, Swift, Kotlin, Scala, Android, iOS, Objective-C, and dozens of community-maintained language rules.
Hermetic, Reproducible Builds
Sandboxed action execution and explicit dependency declarations make Bazel builds reproducible across machines and CI runners.
Incremental Builds
Fine-grained action graph and Merkle-tree based caching mean only what changed gets rebuilt, even in monorepos with millions of targets.
Remote Caching and Execution
Bazel speaks the open Remote Execution API (REAPI) so teams can share a Content-Addressable Store and offload actions to a remote build farm.
Bzlmod External Dependencies
MODULE.bazel + the Bazel Central Registry replace the legacy WORKSPACE system with versioned, transitive, registry-resolved modules.
Starlark Extension Language
A deterministic Python-like DSL for writing custom rules, repository rules, module extensions, and aspects without touching Bazel internals.
Build Event Protocol
Every invocation emits a structured BEP/BES stream consumable by CI dashboards, observability tools, and flake detectors.
Query Languages
bazel query, cquery (configured), and aquery (action graph) let you inspect dependency graphs, configuration transitions, and the actual actions Bazel will run.
Toolchain Resolution
Platform-aware toolchain selection lets one BUILD graph target Linux, macOS, Windows, Android, iOS, and embedded targets from the same source tree.
Persistent Workers
Long-lived worker processes (javac, scalac, etc.) amortize JVM and compiler startup across many actions for faster incremental builds.
Bazel Central Registry
Default public index of Bazel modules at bcr.bazel.build with searchable UI at registry.bazel.build.
Bazelisk Version Launcher
Pins the exact Bazel version per project via .bazelversion so every contributor and CI runner uses the same build tool.
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.