Rules
Recommended rules
Much of Bazel’s strength comes from the ability to define new rules which can be used by others. There is a growing and evolving set of rules to support popular languages and packages.
Contact the respective rule set’s maintainers regarding issues and feature requests. To find more Bazel rules, use a search engine or look on GitHub.
Here is a selection of recommended rules:
- Android
- Boost
- C / C++
- Docker
- Go
- Haskell
- Java
- JavaScript / NodeJS
- Kubernetes
- Maven dependency management
- Objective C
- Package building and fetching rules
- Protocol Buffers
- Python
- Scala
- Shell
- Webtesting (Webdriver)
The repository Skylib contains additional functions that can be useful when writing new rules and new macros.
Native rules that do not apply to a specific programming language
Native rules are shipped with the Bazel binary, they are always available in
BUILD files without a load
statement.
- Extra actions
- General
- Platform
- Workspace
Embedded non-native rules
Bazel also embeds additional rules written in Starlark. Those can be loaded from
the @bazel_tools
built-in external repository.