Skip to content
52

Awesome Bazel

A curated list of Bazel rules, tooling and resources.

1.2k stars134 forks184 entriesLast push Nov 13, 2024 (1 year ago)License Apache-2.0

This page lists names, links and short descriptions. The original list on GitHub is the source and belongs to its authors.

Tooling >General

graknlabs/bazel-distribution

Assemble and deploy software distributions to common platforms, e.g. APT, Brew, GitHub, Maven, NPM, PIP, RPM, etc.

bazelbuild/bazel-watcher

Automatically run Bazel commands when source files change

nadirizr/dazel

Run Bazel inside a Docker container via a seamless proxy

spotify/bazel-tools

Spotify's production tools for dealing with very large Bazel-managed repositories.

atlassian/bazel-tools

Atlassian's reusable bits for Bazel

gerrit/bazlets

Gerrit's re-usable building blocks for Bazel build tool

Bazel Code Search

Browse Bazel's codebase with cross references.

heroku-buildpack-bazel

Heroku buildpack for Bazel

hchauvin/bazel-coverage-report

A multi-language coverage report generator for Bazel

acqio/bazel-arcanist

Integration with Arcanist with arc test and arc lint

Asana/bazeltsc

TypeScript compiler that knows how to run as a Bazel persistent worker

bazelbuild/sandboxfs

A virtual file system for sandboxing

JetBrains/teamcity-bazel-plugin

TeamCity plugin for Bazel (blogpost)

philwo/bazelisk

A user-friendly launcher for Bazel

bzl-io/bzl

a wrapper around the bazel build tool to extend its functionality

Aspect CLI

a wrapper around Bazel that allows interactivity and plugin extensions

bazelbuild/bazel-integration-testing

Framework for integration tests that call Bazel

bazel-diff

Bazel Target Diffing between two revisions in Git, allowing for Test Target Selection and Selective Building

renovate

Automate WORKSPACE dependencies updates

bazel-super-formatter

Hermetic aggregation formatter to format code in most languages

stackb/bazel-aquery-differ

View differences between two different aquery invocations.

Bazel Steward

Automate external dependency updates (Rules, Maven, Bazel itself)

Tooling >Toolchains

bazelbuilds/bazel-toolchains

Bazel toolchain configurations to enable Google Cloud Remote Build Execution via Docker containers

vsco/bazel-toolchains

A collection of Bazel C++ build infrastructure based on Chromium's LLVM toolchain

grailbio/bazel-toolchain

LLVM toolchain for bazel

bazelembedded/bazel-embedded

Set of bazel toolchains and tools, for compiling and uploading to embedded targets

hexdae/bazel-arm-none-eabi

embedded ARM toolchain

hexdae/toolchains_riscv_gnu

RISC-V toolchain

f0rmiga/gcc-toolchain

A fully-hermetic Bazel GCC toolchain for Linux

Tooling >Starlark

Official documentation

Language description

Starlark in Go

Starlark in Rust

Starlet

Go wrapper for Starlark in Go that simplifies script execution, offers data conversion, and useful Starlark libraries and extensions.

In 3 lists

Stardoc

Starlark documentation generator

Sphinx-Bazel

Sphinx extension to read Bazel files to generate documentation (GitHub)

Skylib

Common useful functions for writing custom build rules with Starlark

aspect_bazel_lib

More common useful functions for writing custom build rules with Starlark

Bazel Common Libraries

Java-specific Common functionality for Google's open-source libraries that are built with Bazel.

Stardbg

A standalone debugger for Starlark

Tooling >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.

Tooling >Project generators

blakefiler.py

Generate a Makefile and tarball-able distribution using bazel query

Lavender

Generate Visual Studio projects that uses Bazel for the actual building

bazel-to-msbuild

Generate Visual Studio solution and projects from bazel workspace, command line tool build by Java.

Jadep: Java Automated Dependencies

Generate BUILD files automatically for an existing Java project with class dependency analysis.

BUILD File Generator

Similar tool for existing Java projects.

Gazelle

BUILD file generator with extensions for many languages. See the list of available plugins in the project README: https://github.com/bazelbuild/bazel-gazelle#supported-languages

Pazel

Generate Bazel BUILD files for Python

Tulsi for Xcode

A project generator for Xcode projects

pinterest/xchammer

XCHammer generates Xcode projects from a Bazel Workspace

create-bazel-workspace

Generate a new multi-language Bazel workspace with minimal configuration

@bazel/create

Project generator for NodeJS projects

llvmbzlgen

Tools for generating Bazel BUILD targets from LLVM CMakeLists

Tooling >Editors

IntelliJ plugin (compatible with Android Studio and CLion)

Bazel Eclipse Feature (BEF)

Fork of the abandoned Google Bazel Eclipse plugin

B2Eclipse

Bazel Eclipse plugin based on Eclipse JDT LS

Vim plugin

codesuki/bazel-mode

brown/bazel-mode

bazelbuild/vscode-bazel

stackb/bazel-stack-vscode

. Includes syntax highlighting / flag completion for bazelrc files. Hover support for inline builtin-function and bazel rule documentation. VSCode Marketplace.

stackb/bazel-stack-vscode-cc

. Supports generation of clang compilation databases. VSCode Marketplace.

VSCode Bazel Java extension

Proof-of-concept (POC) of a Bazel Java development extension for VS Code

rules_xcodeproj

Generates Xcode projects for your workspace that builds with Bazel

hedronvision/bazel-compile-commands-extractor

enables autocomplete, smart navigation, quick fixes, and more in a wide variety of extensible editors, including VSCode, Vim, Emacs, Atom, and Sublime. It lets language servers, like clangd, ccls, and other types of tooling, draw upon Bazel’s understanding of how cc and objc code will be compiled,…

PyCharm

sconover/rules_intellij_generate

Plugin-less Bazel/IntelliJ integration

georgewfraser/java-language-server

Java Language Server (LSP) with support for Bazel-built projects

Tooling >BUILD file tools

bazelbuild/buildtools

contains:

Tooling >Migration

bazelbuild/migration-tooling

Migrate an existing Maven project to Bazel.

In 2 lists

johnynek/bazel-deps

Generate bazel dependencies transitively for Maven artifacts, with scala support.

rules_maven

Rules to define Maven dependencies

bazelize-maven-plugin

Maven plugin for migration from Maven to Bazel

bazelbuild/gmaven_rules

Transitive WORKSPACE rules for Google's Maven repository

stripe/sbt-bazel

Easily convert SBT projects to Bazel workspaces

wix-incubator/exodus

Easily migrate your JVM code from Maven to Bazel

Tooling >Misc

salesforce/bazel-maven-proxy

A local proxy to access Maven resources behind secure repositories or from the local repo

Resources >Designs

bazelbuild/proposals

Index of all design documents and proposals for Bazel.

In 2 lists

Bazel's design process

Resources >Documentation

Bazel rules API documentation

, hosted by Aspect

Resources >Tutorials

Java

C++

Android

iOS

c++ toolchains

Building Android Apps with Bazel

Aspects: the fan-fic of build rules

Real-world Bazel

BUILD files collected from public GitHub projects for reference and learning purposes.

Bazel Lesson 1

and Bazel Lesson 2 - Gradually build a multi-language Bazel project.

Bazel Mystery

Gamified workspace to learn about Bazel.

Bazel and Bazel rules tutorials from Jay Conrod

, e.g.

Migrating to Bazel Part 1

Migrating to Bazel Part 2

Binary rule

Library rule, depsets, providers

Data and runfiles

Execution

Repository rules

Platforms and toolchains

WORKSPACE files

Resources >Projects

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.

In 23 listsDetails

abseil/abseil-cpp

OSS collection of C++ code (compliant to C++11) designed to augment the C++ standard library.

In 5 listsDetails

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

ABC: Angular Buildtools Convergence

google/startup-os

Working examples of Google's Open Source tools and Cloud.

In 2 lists

lucperkins/colossus

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

In 2 lists

squzy/squzy

is a high-performance open-source monitoring system written in Golang with Bazel. Using Bazel for testing, building and dockerize.

Resources >Demos

kastiglione/bazel-xcode-demo-swift-driver

Demonstrates using Bazel and Xcode, to build apple/swift-driver.

nickdecooman/bazel-rust-docker-example

Demonstrating Bazel setup for Rust services with Cargo and Docker support.

kriscfoster/multi-language-bazel-monorepo

Bazel monorepo that includes example golang, python and javascript libraries, binaries and Docker image targets.

ekhabarov/bazel-k8s-envoy

Build Go gRPC micoservices with Bazel and deploy them to k8s.

Resources >Articles

Build mobile apps with Bazel. Part 2: iOS

Francois Stephany

Build mobile apps with Bazel. Part 1: Android

Francois Stephany

(In Japanese) Building C++ with Bazel / C++ビルド環境としてのBazel導入試行

Nix + Bazel = fully reproducible, incremental builds

Production Code Splitting With Bazel

Greg Magolan (Google)

Build large polyglot projects with Bazel... now with Haskell support

Managing a Go monorepo with Bazel

Filip Nikolovski (InPlayer)

How to Create a Persistent Worker for Bazel

Mike Morearty (Asana)

We Switched from Maven to Bazel and Builds Got 10x Faster

Jason Lunz (Redfin)

Angular Bazel Build With Dev Server

Torgeir "Tor" Helgevold

Bazel Conference 2017

Justin Poehnelt

What Angular is doing with Bazel and Closure

Building Docker Images Without Docker

Bazel Golang Hello World

Migrating from Gradle to Bazel

Benchmarking the Bazel build system on real-life C++

Migrating Gypsum and CodeSwitch to Bazel

Jay Conrod (Google)

Create Go Monorepo with Go-modules and Bazel

Iurii Panarin

Resources >Videos

Bazel Opportunities, Tradeoffs, and Rollout

Kyle Cordes (Oasis Digital)

code::dive 2020: Introduction to Bazel to build C++ and Python

Xavier Bonaventura (BMW Group)

KubeCon Europe 2019: Reproducible Development and Deployment with Bazel and Telepresence

Christian Roggia (Engel & Völkers)

ScalaSphere 2018: Using Bazel to build Scala

Andy Scott (Stripe)

GopherChina 2018: Bazel build //:Go

Yuan He (流利说/liulishuo.com)

How I love being ejected: Customizing your Angular build with Bazel

Greg Magolan (Angular team)

SF Scala: Bazel - a Brief Overview

Ulf Adams (Google)

Bazel for building Angular applications at Angular Lunch

Kyle Cordes

Deep Dive of Google's Angular Build Toolchain

Alex Eagle (Google)

Bazel Conference 2017 Opening Remarks

Helen Altshuler, John Field, Ulf Adams (Google)

Bazel Remote Execution and Remote Caching w/ Two Sigma and Uber

Alpha Lam (Two Sigma), George Gensure (Uber)

Tensorflow with Bazel — Lessons Learned

Gunhan Gulsoy (Google)

Building Real-time Systems with Bazel w/ SpaceX

Matt Sachtler, Patrick Conrad (SpaceX)

Hacks and Tips for Incremental Adoption of Bazel for iOS w/ Pinterest

Rahul Malik, Brandon Kase, Jerry Marino (Pinterest)

Front End Development with Bazel: Angular/TypeScript and Persistent Workers w/ Asana

Mike Morearty (Asana), Alex Eagle (Google)

Scala with Bazel w/ Wix, Stripe, Databricks

Ittai Zeidman (Wix), Oscar Boykin (Stripe), Ahir Reddy (DataBricks)

Skylark: The Bazel Extensibility Language

Laurent Le Brun (Google)

Using Bazel for Fast, Correct Docker Deployments w/ Databricks

Miles Yucht (Databricks), Matthew Moore (Google)

Platforms and Toolchains in Bazel

John Cater (Google)

Building Kubernetes [a Go binary] with Bazel

Jeff Grafton (Google)

Integration testing with Bazel w/Dropbox

Benjamin Peterson (Dropbox)

Bazel Conference 2017 playlist

GothamGo 2017: A Go implementation of the Skylark Configuration Language

Alan Donovan (Google)

Bazel: Google's Extensible, Multilingual, Scalable Build System DevTools@Scale2017

Dmitry Lomov (Google)

Building Go with Bazel at Golang UK Conference 2017

Paul Bellamy

Building Software At Google Scale

Ulf Adams, Helen Altshuler, David Stanke (Google)

Bazel: Google's own build tool, now publicly available in Beta

Paul Johnston

Bazel at FrOSCon

Klaus Aehlig (Google)

Building Python with Bazel

Benjamin Peterson (Dropbox)

Bazel at the Dart Developer Summit 2016

Damien Martin-Guillerez (Google)

Resources >Podcasts

Bazel; CppCast

Oct 16th, 2020 - Lukács Berki and Julio Merino

Bazel with Tony Aiuto; Google Cloud Podcast #153

Oct 31st, 2018 - Tony Aiuto

AiA 247: Bazel with Alex Eagle; Adventures in Angular

Jul 9th, 2019 - Alex Eagle (Google)

Resources >Books

Beginning Bazel: Building and Testing for Java, Go, and More

P.J. McNerney; Apress, 1st ed. edition (December 24, 2019) 978-1484251935

Core Bazel: Fast Builds For Busy People

B. Mustiata; Amazon Kindle (July 28, 2020) ASIN: B08DXBR2TF

Getting Started with Bazel

B. Muschko; O'Reilly Media (February 2020)

Resources >Slides

Building Gerrit with Bazel at Gerrit User Conference 2016

David Ostrovsky

Resources >Blogs

Official Bazel Blog

Kristina Chodorow's blogposts on Bazel

Envoy as an API Gateway

Build Go microservices with Bazel.

In 2 lists

Resources >Community

#bazelbuild on Slack

BuildTeamWorld on Slack

A community slack for BuildFarm, BuildGrid, Bazel and general build teams.

#bazel on Freenode

Stack Overflow

Bazel users mailing list

An active mailing list and an excellent resource to ask questions and learn fine-grained details about DDD/CQRS.

In 23 listsDetails

Resources >Misc

Why Google Stores Billions of Lines of Code in a Single Repository

(Video at @Scale 2015)

In 2 lists
See category
94

Awesome OpenClaw Skills

VoltAgent/awesome-openclaw-skills

The awesome collection of OpenClaw skills. 5,400+ skills filtered and categorized from the official OpenClaw Skills Registry.🦞

Fresh★ 53k830 entriesPushed today
92

Awesome DeepSeek Harness (DSH) Plugin

awesome-dsh-plugin/awesome-dsh-plugin

A curated list of plugins for DeepSeek Harness (dsh) · DeepSeek Harness 插件精选列表

Fresh★ 17k1654 entriesPushed today
91

Awesome Guidelines

Kristories/awesome-guidelines

Programming style, best practices, and coding conventions.

Fresh★ 11k166 entriesPushed 2 days ago
90

Awesome

sindresorhus/awesome

😎 Awesome lists about all kinds of interesting topics [NOTE: Pull requests are temporarily disabled until I have a chance to catch up with the existing ones]

Fresh★ 513k51 entriesPushed 28 days ago
90

Awesome Prompts

ai-boost/awesome-prompts

Curated list of chatgpt prompts from the top-rated GPTs in the GPTs Store. Prompt Engineering, prompt attack & prompt protect. Advanced Prompt Engineering papers.

Fresh★ 9k288 entriesPushed yesterday
90

Awesome README

matiassingers/awesome-readme

A curated list of awesome READMEs

Fresh★ 22k143 entriesPushed yesterday