Back to rankings

A curated list of Bazel rules, tooling and resources.

bazelskylarkbuild-systemawesomeawesome-listbazel-ruleslistbuildcontinuous-integration
Star Growth
Stars
1.2k
Forks
135
Weekly Growth
Issues
5
5001k
Oct 2017Sep 2020Aug 2023Jul 2026
README

Awesome Bazel Awesome

{Fast, Correct} - Choose two

Bazel is an open-source build and test tool similar to Make, Maven, and Gradle. It uses a human-readable, high-level build language. Bazel supports projects in multiple languages and builds outputs for multiple platforms. Bazel supports large codebases across multiple repositories, and large numbers of users. (via docs)

A curated list of Bazel rules, tooling and resources.

Have something to contribute or discuss? Open a pull request or create an issue.


Contents

Rules

Language/Platform Repository/Documentation
Amazon web services (AWS)
Android
AppImage
Apple (iOS, macOS, tvOS, watchOS)
ANTLR
ARM Mbed OS
Bison
Blender
BOSH
Brotli
C++
C#
Clojure
Closure
CSS
CMake
CocoaPods
CODEOWNERS
D
Dart
Databricks
Docker Note: see the OCI containers section below
ebook (pdf, epub, mobi)
ECS
Elm
Emacs Lisp (elisp)
Emscripten
Erlang
Flex
Go
Graal
Grafana
Groovy
GWT
Haskell
Helm (Kubernetes)
Heroku
Homebrew
Hugo
Idris
ISPC
Java
JFlex
Kotlin
Kubernetes
LaTeX
LLVM toolchain
Lua
M4
Manifest of build artifacts
  • kindlyops/rules_manifest: Take a list of artifacts such as zip files for AWS Lambda, and collect them into a single directory with each file named by the content hash, along with a JSON manifest of the files and original labels.
Maven
Microsoft Azure
NativeScript
Nixpkgs
Node.js / JavaScript
OCaml
OCI Containers
OpenAPI/Swagger
Packaging (RPM/DEB)
Pandoc
PHP
Prometheus
  • 5h4d0w4rt/rules_prometheus: Bazel rules for managing Prometheus, including running server, running "promtool", unit testing rules, etc.
Protobuf
Purescript
Python
Ragel
R
ReasonML, BuckleScript
Ruby
Rust
Sass
Scala
Shell
SonarQube
Spring
Swift
Terraform
Twirl
TypeScript
Verilog
Web (HTML, CSS, JS, assets)
YAML
Zig

Tooling

General

Toolchains

Toolchains enable authors to decouple their rule logic from platform-based selection of tools.

Starlark

Starlark (formerly called Skylark) is Bazel's domain-specific language for writing BUILD definitions and rules.

Remote caching and execution

  • bazel-remote - A simple remote cache for Bazel that supports HTTP and gRPC, with optional proxy backends for S3/GCS/HTTP.
  • bazelbuild/bazel-buildfarm - Self-hosted remote caching and execution service written in Java
  • Buildbarn - Self-hosted remote caching and execution service written in Go
  • buildbuddy-io/buildbuddy - Cloud or self-hosted remote caching and execution service written in Go, with Web UI for viewing and debugging build logs
  • BuildGrid - Self-hosted remote caching and execution service written in Python
  • Asana/bazels3cache - Small web server for a Bazel cache that proxies to S3, allowing Bazel to work offline and has async uploads to make Bazel faster.
  • EngFlow - Cloud or self-hosted remote caching and execution, with build analytics UI for diagnosing and fixing performance issues, flaky tests, and build failures.

Project generators

Tools for generating WORKSPACE and BUILD files from source code.

Editors

BUILD file tools

bazelbuild/buildtools contains:

  • Buildifier - Prettifier for BUILD and .bzl files
  • Buildozer - Manipulate BUILD file contents from the command line
  • unused_deps - Find unneeded dependencies in BUILD files

Migration

Misc

Resources

Designs

Documentation

Tutorials

Official

Toolchains

Codelabs

Community

Projects

A list of projects built with Bazel:

  • bazelment/trunk: A collection of C++/Java OSS with BUILD files. e.g. grpc, guava, netty.
  • tensorflow/tensorflow: Computation using data flow graphs for scalable machine learning.
  • abseil/abseil-cpp - OSS collection of C++ code (compliant to C++11) designed to augment the C++ standard library.
  • GoogleCloudPlatform/distroless - Language focused docker images, minus the operating system.
  • google/subpar - Subpar is a utility for creating self-contained python executables. It is designed to work well with Bazel.
  • alexeagle/angular-bazel-example: Building an Angular application with Bazel
  • google/startup-os - Working examples of Google's Open Source tools and Cloud.
  • lucperkins/colossus - An example microservice architecture for Kubernetes using Bazel, Go, Java, Docker, Kubernetes, Minikube, Gazelle, gRPC, Prometheus, Grafana, and more.
  • squzy/squzy - is a high-performance open-source monitoring system written in Golang with Bazel. Using Bazel for testing, building and dockerize.

Demos

Bazel demo projects:

Articles

Videos

Podcasts

Books

Slides

Blogs

Community

Misc

Related repositories
bazelbuild/bazel

a fast, scalable, multi-language and extensible build system

JavaMavenApache License 2.0bazelbuild
bazel.build
25.6k4.5k
GoogleContainerTools/distroless

🥑 Language focused docker images, minus the operating system.

StarlarkApache License 2.0dockerbazel
22.9k1.4k
zml/zml

Any model. Any hardware. Zero compromise. Built with @ziglang / @openxla / MLIR / @bazelbuild

ZigApache License 2.0aibazel
zml.ai
3.9k170
thought-machine/please

High-performance extensible build system for reproducible multi-language builds.

GoGo ModulesApache License 2.0buildbuild-tool
please.build
2.6k217
magma/magma

Platform for building access networks and modular network services

C++Othernetworksmobile
magmacore.org
1.9k708
TraceMachina/nativelink

NativeLink is a Nix-powered, open source, high-performance build cache and remote execution server, compatible with Bazel, Soong, Pants, Buck2, Reclient, and other RE-compatible build systems. It offers drastically faster builds, reduced test flakiness, and support for specialized hardware.

Rustcrates.ioOtherapache2bazel
nativelink.com
1.6k223
bazel-contrib/rules_go

Go rules for Bazel

GoGo ModulesApache License 2.0bazelbazel-rules
1.5k761
bazelbuild/buildtools

A bazel BUILD file formatter and editor

GoGo ModulesApache License 2.0bazelbuild-tool
1.2k467
bazelbuild/rules_docker

Rules for building and handling Docker images with Bazel

StarlarkApache License 2.0bazeldocker
1.1k693
lucperkins/colossus

Colossus — An example microservice architecture for Kubernetes using Bazel, Go, Java, Docker, Kubernetes, Minikube, Gazelle, gRPC, Prometheus, Grafana, and more

StarlarkMIT Licensekubernetesbazel
github.com/lucperkins/colossus
1k67