
Using Bazel
Explore the Bazel documentation to find tutorials and guides for users of all levels.
Building with Bazel
Work with the foundational elements of Bazel to create a powerful build system.
Run Bazel
Learn common commands in Bazel, including how to get contextual help.
BUILD files
Define your build products and dependencies with `BUILD` files.
BUILD style guide
Help automated tools to understand, edit, and generate `BUILD` files.
Bazel commands
Discover options for configuring various Bazel commands.
Query builds
Use Bazel's query, aquery, and cquery languages to trace dependencies in your code.
Optimizing Bazel
Increase the health and efficiency of your builds by following Bazel's best practices.
Extending Bazel
Increase Bazel's capablities by extending the BUILD language with rules and macros.
Rules overview
Learn the basics of using macros and rules.
Recommended rules
Survey the recommended, native, and non-native Bazel rules.
Build language
Learn how to use Starlark, the language used in Bazel.
Rules basics
Use rules to implement a series of actions for Blaze to perform.
Writing rules
Learn how to write custom rules for your builds.
Writing macros
Make tools to complete simple tasks in your build.
Testing rules
Test your Starlark code in Bazel.
Rules authors
Share your rules with the Bazel community.
Distributed Builds
Work with distributed builds to avoid unnecessary downloads while increasing the power of your build.
Remote execution
Distribute build and test actions across multiple machines.
Remote caching
Share build outputs with a team of developers or continuous integration system.
Persistent workers
Increase execution efficiency by sending multiple requests to a long-running process.
Build Event Protocol
Allow third-party programs to gain insight into a Bazel invocation with BEP.