Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jin/awesome-bazel
A curated list of Bazel rules, tooling and resources.
https://github.com/jin/awesome-bazel
List: awesome-bazel
awesome awesome-list bazel bazel-rules build build-system continuous-integration list skylark
Last synced: 4 days ago
JSON representation
A curated list of Bazel rules, tooling and resources.
- Host: GitHub
- URL: https://github.com/jin/awesome-bazel
- Owner: jin
- License: apache-2.0
- Created: 2017-10-24T14:44:24.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2024-04-03T19:38:35.000Z (7 months ago)
- Last Synced: 2024-04-10T15:57:30.080Z (7 months ago)
- Topics: awesome, awesome-list, bazel, bazel-rules, build, build-system, continuous-integration, list, skylark
- Homepage: https://jin.github.io/awesome-bazel
- Size: 465 KB
- Stars: 1,098
- Watchers: 49
- Forks: 129
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome - awesome-bazel - A curated list of Bazel rules, tooling and resources. (Others)
- ultimate-awesome - awesome-bazel - A curated list of Bazel rules, tooling and resources. (Other Lists / PowerShell Lists)
README
# Awesome Bazel [![Awesome](https://awesome.re/badge.svg)](https://awesome.re)
{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](https://docs.bazel.build/versions/master/bazel-overview.html))*
A curated list of [Bazel](https://bazel.build) [rules](#rules), [tooling](#tooling) and [resources](#resources).
Have something to contribute or discuss? [Open a pull request](https://github.com/jin/awesome-bazel/pulls) or [create an issue](https://github.com/jin/awesome-bazel/issues).
---
## Contents
- [Rules](#rules)
- [Tooling](#tooling)
- [Toolchains](#toolchains)
- [Starlark](#starlark)
- [Migration](#migration)
- [Editor plugins](#editors)
- [Misc](#misc-tooling)
- [Resources](#resources)
- [Tutorials](#tutorials)
- [Projects](#projects)
- [Demos](#demos)
- [Articles](#articles)
- [Videos](#videos)
- [Podcasts](#podcasts)
- [Books](#books)
- [Slides](#slides)
- [Blogs](#blogs)
- [Community](#community)
- [Misc](#misc-resources)## Rules
Language/Platform
Repository/Documentation
Amazon web services (AWS)
Android
- bazelbuild/rules_android
-
bazelbuild/rules_android_ndk: Starlark rules replacing the built-in NDK rules that with more modern NDKs -
quittle/bazel_android_sdk_downloader: Drop-in replacement for android_sdk_repository to automatically download the Android SDK.
AppImage
Apple (iOS, macOS, tvOS, watchOS)
- bazelbuild/rules_apple
-
line/bazel_rules_apple: LINE's custom rules for building apps and frameworks for Apple platforms -
ios-bazel-users/ios-bazel-users: Resources for using Bazel for iOS development -
Tinder/sign_here: Provides a simple command line interface for automating the creation of signing information for Apple builds (i.e. certificates and provisioning profiles)
ANTLR
ARM Mbed OS
Bison
Blender
-
zaucy/rules_blender: Bazel rules for rendering .blend files with Blender
BOSH
Brotli
C++
- https://docs.bazel.build/versions/master/be/c-cpp.html
- bazelbuild/rules_cc
-
nelhage/rules_boost: Rules for Boost C++ libraries -
hedronvision/bazel-make-cc-https-easy: Rules that make HTTPS requests from C++ easy, using cpr and libcurl -
erenon/bazel_clang_tidy: Run clang-tidy directly from bazel -
rnburn/rules_cc_module: Rules to build C++20 modules. -
vertexwahn/rules_qt6: Bazel rules for Qt6 -
kklochkov/rules_qt: Rules for Qt5 and Qt6
C#
- bazelbuild/rules_dotnet
-
Brightspace/rules_csharp: an alternative (unofficial) design for C# rules
Clojure
Closure
CSS
CMake
CocoaPods
CODEOWNERS
D
Dart
Databricks
Docker
Note: see the OCI containers section below
-
bazelbuild/rules_docker
-
rmohr/rules_container_rpm: Install RPMs without a container daemon with bazel
ebook (pdf, epub, mobi)
ECS
Elm
Emacs Lisp (elisp)
Emscripten
Erlang
Flex
Go
-
Gazelle: Generate Bazel BUILD files for Go related_projects
-
update-repos: Tool in Gazelle for adding Go dependencies as `go_repository` to WORKSPACE
-
ActiveState/rules_vendor: Bazel support for packaging Go vendored dependencies
-
jmhodges/bazel_gomock: Support for generating code with `mockgen`
Graal
Grafana
Groovy
GWT
Haskell
-
FormationAI/hazel: Generate rules for third-party Haskell dependencies
-
google/cabal2bazel: Import Cabal packages from Hackage as Bazel packages
-
google/hrepl: Interactive development for Bazel/Haskell rules
Helm (Kubernetes)
- tmc/rules_helm
-
dataform-co/dataform/tools/helm: Repository rules for downloading Helm charts, and BUILD rules for templating them - helm bazel rules Bazel rules to install and manipulate Helm charts with Bazel
Heroku
-
salesforce/bazoku: Bazel rules for deploying to Heroku
Homebrew
Hugo
Idris
ISPC
Java
-
bazelbuild/tools_jvm_autodeps (Jadep): Generate BUILD files automatically for an existing Java project with class dependency analysis.
-
salesforce/bazel-java-builder-template: A template for Java based source code generators.
-
fmeum/rules_jni: Java Native Interface (JNI) and Java Invocation API integration for Bazel
-
bazel-contrib/rules_jvm: Contributed Bazel rules that make working with java projects more pleasant
JFlex
Kotlin
Kubernetes
- bazelbuild/rules_k8s
-
acqio/rules_k8s_extension Bazel rules for Kubernetes extension for creating configmaps and secrets. -
adobe/rules_gitops A Kustomize based GitOps workflow implementation.
LaTeX
LLVM toolchain
- vsco/bazel-toolchains
- grailbio/bazel-toolchain
-
samolisov/bazel-llvm-bridge: Bazel repository_rule for using libraries from a local LLVM in your BUILD files. Supports LLVM, Clang and MLIR. Also provides the 'tablegen' rule.
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
-
johnynek/bazel-deps: Generate Bazel dependencies transitively for Maven artifacts, with Scala support.
-
-
bazelbuild/gmaven_rules: Repository rules for Maven artifacts hosted on Google Maven repository
-
square/bazel_maven_repository: Access maven deps as "@maven//some/maven/group_id:artifact_id" (incorporating transitive dependencies)
-
bazelbuild/rules_jvm_external: Rules to resolve and fetch artifacts transitively from Maven repositories
-
menny/bazel-mvn-deps: A simple Maven dependency graph generator for Bazel
Microsoft Azure
NativeScript
Nixpkgs
Node.js / JavaScript
- bazelbuild/rules_nodejs
- ecosia/bazel_rules_nodejs_contrib
- dropbox/rules_node
- pubref/rules_node
- zenclabs/bazel-javascript
- vistarmedia/rules_js
- thelgevold/rules_svelte
-
dataform-co/dataform/tools/gcloud: Rules for deploying Node.js code as gcloud functions (HTTP/PubSub) -
aspect_rules_js: Bazel rules for building JavaScript programs -
aspect_rules_esbuild: Bazel rules for the esbuild JS bundler -
aspect_rules_terser: Bazel rules for Terser - a JavaScript minifier -
aspect_rules_swc: Bazel rules for swc -
aspect_rules_ts: Bazel rules for TypeScript -
aspect_rules_webpack: Bazel rules for Webpack -
aspect_rules_rollup: Bazel rules for Rollup - a JavaScript bundler -
aspect_rules_jest: Bazel rules to run tests using Jest -
aspect_rules_jasmine: Bazel rules to run tests using Jasmine -
aspect_rules_cypress: Bazel rules to run tests using Cypress -
aspect_rules_deno: Bazel rules for Deno
OCaml
OCI Containers
- guymers/bazel_rules_container
- guymers/containers_by_bazel
-
bazel-contrib/rules_oci: Bazel rules for building 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
-
https://docs.bazel.build/versions/master/be/protocol-buffer.html: Native protocol buffer rules
-
rules-proto-grpc/rules_proto_grpc: Bazel rules for building Protocol Buffers & gRPC code and libraries
-
stackb/rules_proto: Modern bazel build rules for protobuf / gRPC
-
bazelbuild/rules_proto: Starlark implementation of the Protobuf rules in Bazel
Purescript
Python
-
-
georgeliaw/rules_wheel: Rules for building Python wheels
-
tuomasr/pazel: Generate Bazel BUILD files for Python
-
zenreach/ramsay: Generate Bazel BUILD files for Python rules_pyz
-
weisi/bazel_for_gcloud_python: Rules to build Python 3 and deploy to Google App Engine and Google Cloud Functions
-
-
tubular/rules_pygen: Rules for generating Bazel Python libraries from requirements.txt
-
TriggerMail/rules_pyz: Python rules with PyPI package support (Unmaintained)
-
aspect_rules_py: Bazel rules for running Python tools and building Python projects -
stackb/pycross_image: Bazel rules for building/cross-compiling container images for python apps
Ragel
R
ReasonML, BuckleScript
Ruby
Rust
-
google/cargo-raze: Generate Bazel BUILD files for Rust Crates
-
wildarch/blackjack: Generate Bazel targets for crates.io dependencies in your Cargo.toml
Sass
Scala
Shell
- tweag/rules_sh
-
filmil/bazel-bats
(bats: bash automated testing system)
SonarQube
Spring
Swift
Terraform
Twirl
TypeScript
- @bazel/typescript on npm (from https://github.com/bazelbuild/rules_nodejs)
-
sconover/rules_multi_tsc: Bazel rules that support breaking a typescript codebase into small, independently-compilable libraries.
Verilog
Web (HTML, CSS, JS, assets)
YAML
-
ekhabarov/rules_ytt: Bazel rules for YAML templating tool (ytt).
Zig
-
aherrmann/rules_zig: Bazel rules for Zig.
## Tooling
### General
- [graknlabs/bazel-distribution](https://github.com/graknlabs/bazel-distribution) - Assemble and deploy software distributions to common platforms, e.g. APT, Brew, GitHub, Maven, NPM, PIP, RPM, etc.
- [bazelbuild/bazel-watcher](https://github.com/bazelbuild/bazel-watcher) - Automatically run Bazel commands when source files change
- [nadirizr/dazel](https://github.com/nadirizr/dazel) - Run Bazel inside a Docker container via a seamless proxy
- [spotify/bazel-tools](https://github.com/spotify/bazel-tools) - Spotify's production tools for dealing with very large Bazel-managed repositories.
- [atlassian/bazel-tools](https://github.com/atlassian/bazel-tools) - Atlassian's reusable bits for Bazel
- [gerrit/bazlets](https://github.com/GerritCodeReview/bazlets) - Gerrit's re-usable building blocks for Bazel build tool
- [Bazel Code Search](https://source.bazel.build) - Browse Bazel's codebase with cross references.
- [heroku-buildpack-bazel](https://github.com/google/heroku-buildpack-bazel) - Heroku buildpack for Bazel
- [hchauvin/bazel-coverage-report](https://github.com/hchauvin/bazel-coverage-report) - A multi-language coverage report generator for Bazel
- [acqio/bazel-arcanist](https://github.com/acqio/bazel-arcanist) - Integration with Arcanist with `arc test` and `arc lint`
- [Asana/bazeltsc](https://github.com/Asana/bazeltsc) - TypeScript compiler that knows how to run as a Bazel persistent worker
- [bazelbuild/sandboxfs](https://github.com/bazelbuild/sandboxfs) - A virtual file system for sandboxing
- [JetBrains/teamcity-bazel-plugin](https://github.com/JetBrains/teamcity-bazel-plugin) - TeamCity plugin for Bazel ([blogpost](https://blog.jetbrains.com/teamcity/2018/11/bazel-plugin-for-teamcity/))
- [philwo/bazelisk](https://github.com/philwo/bazelisk) - A user-friendly launcher for Bazel
- [bzl-io/bzl](https://github.com/bzl-io/bzl) - a wrapper around the bazel build tool to extend its functionality
- [Aspect CLI](https://aspect.build/cli) - a wrapper around Bazel that allows interactivity and plugin extensions
- [bazelbuild/bazel-integration-testing](https://github.com/bazelbuild/bazel-integration-testing) - Framework for integration tests that call Bazel
- [bazel-diff](https://github.com/Tinder/bazel-diff) - Bazel Target Diffing between two revisions in Git, allowing for Test Target Selection and Selective Building
- [renovate](https://github.com/renovatebot/renovate) - Automate WORKSPACE dependencies updates
- [bazel-super-formatter](https://github.com/aspect-build/bazel-super-formatter) - Hermetic aggregation formatter to format code in most languages
- [stackb/bazel-aquery-differ](https://github.com/stackb/bazel-aquery-differ) - View differences between two different aquery invocations.
- [Bazel Steward](https://virtuslab.github.io/bazel-steward/) - Automate external dependency updates (Rules, Maven, Bazel itself)
### Toolchains
Toolchains enable authors to decouple their rule logic from platform-based selection of tools.
- [bazelbuilds/bazel-toolchains](https://github.com/bazelbuild/bazel-toolchains) - Bazel toolchain configurations to enable Google Cloud Remote Build Execution via Docker containers
- [vsco/bazel-toolchains](https://github.com/vsco/bazel-toolchains) - A collection of Bazel C++ build infrastructure based on Chromium's LLVM toolchain
- [grailbio/bazel-toolchain](https://github.com/grailbio/bazel-toolchain) - LLVM toolchain for bazel
- [bazelembedded/bazel-embedded](https://github.com/bazelembedded/bazel-embedded) - Set of bazel toolchains and tools, for compiling and uploading to embedded targets
- [hexdae/bazel-arm-none-eabi](https://github.com/hexdae/bazel-arm-none-eabi) - embedded ARM toolchain
- [hexdae/toolchains_riscv_gnu](https://github.com/hexdae/toolchains_riscv_gnu) - RISC-V toolchain
- [f0rmiga/gcc-toolchain](https://github.com/f0rmiga/gcc-toolchain) - A fully-hermetic Bazel GCC toolchain for Linux
### Starlark
Starlark (formerly called Skylark) is Bazel's domain-specific language for writing BUILD definitions and rules.
- [Official documentation](https://docs.bazel.build/versions/master/skylark/language.html)
- [Language description](https://github.com/bazelbuild/starlark/)
- [Starlark in Go](https://github.com/google/skylark)
- [Starlark in Rust](https://github.com/google/starlark-rust)
- [Starlet](https://github.com/1set/starlet) - Go wrapper for [Starlark in Go](https://github.com/google/starlark-go) that simplifies script execution, offers data conversion, and useful Starlark libraries and extensions.
- [Stardoc](https://github.com/bazelbuild/stardoc) - Starlark documentation generator
- [Sphinx-Bazel](https://sphinx-bazel.readthedocs.io/en/latest/) - [Sphinx](http://www.sphinx-doc.org/en/master/) extension to read Bazel files to generate documentation ([GitHub](https://github.com/useblocks/sphinx-bazel))
- [Skylib](https://github.com/bazelbuild/bazel-skylib) - Common useful functions for writing custom build rules with Starlark
- [aspect_bazel_lib](https://github.com/aspect-build/bazel-lib) - More common useful functions for writing custom build rules with Starlark
- [Bazel Common Libraries](https://github.com/google/bazel-common) - **Java-specific** Common functionality for Google's open-source libraries that are built with Bazel.
- [Stardbg](https://github.com/laurentlb/stardbg) - A standalone debugger for Starlark
### Remote caching and execution
- [bazel-remote](https://github.com/buchgr/bazel-remote) - A simple remote cache for Bazel that supports HTTP and gRPC, with optional proxy backends for S3/GCS/HTTP.
- [bazelbuild/bazel-buildfarm](https://github.com/bazelbuild/bazel-buildfarm) - Self-hosted remote caching and execution service written in Java
- [Buildbarn](https://github.com/buildbarn) - Self-hosted remote caching and execution service written in Go
- [buildbuddy-io/buildbuddy](https://github.com/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](https://gitlab.com/BuildGrid/buildgrid) - Self-hosted remote caching and execution service written in Python
- [Asana/bazels3cache](https://github.com/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](https://engflow.com) - Cloud or self-hosted [remote caching and execution](https://www.engflow.com/product/remoteExecution), 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.
- [blakefiler.py](https://gist.github.com/jart/082b1078a065b79949508bbe1b7d8ef0) - Generate a Makefile and tarball-able distribution using `bazel query`
- [Lavender](https://github.com/tmandry/lavender) - Generate Visual Studio projects that uses Bazel for the actual building
- [bazel-to-msbuild](https://github.com/sammi/bazel-to-msbuild) - Generate Visual Studio solution and projects from bazel workspace, command line tool build by Java.
- [Jadep: Java Automated Dependencies](https://github.com/bazelbuild/tools_jvm_autodeps) - Generate BUILD files automatically for an existing Java project with class dependency analysis.
- [BUILD File Generator](https://github.com/bazelbuild/BUILD_file_generator) - Similar tool for existing Java projects.
- [Gazelle](https://github.com/bazelbuild/bazel-gazelle) - BUILD file generator with extensions for many languages. See the list of available plugins in the project README:
- [Pazel](https://github.com/tuomasr/pazel) - Generate Bazel BUILD files for Python
- [Tulsi for Xcode](https://github.com/bazelbuild/tulsi) - A project generator for Xcode projects
- [pinterest/xchammer](https://github.com/pinterest/xchammer) - XCHammer generates Xcode projects from a Bazel Workspace
- [create-bazel-workspace](https://github.com/jin/create-bazel-workspace) - Generate a new multi-language Bazel workspace with minimal configuration
- [@bazel/create](http://npmjs.com/package/@bazel/create) - Project generator for NodeJS projects
- [llvmbzlgen](https://github.com/kythe/llvmbzlgen) - Tools for generating Bazel BUILD targets from LLVM CMakeLists
### Editors
- [IntelliJ plugin (compatible with Android Studio and CLion)](https://ij.bazel.build)
- Eclipse Support
- [Bazel Eclipse Feature (BEF)](https://github.com/salesforce/bazel-eclipse) - Fork of the abandoned [Google Bazel Eclipse plugin](https://github.com/bazelbuild/eclipse)
- [B2Eclipse](https://github.com/salesforce/bazel-ls-eclipse) - Bazel Eclipse plugin based on [Eclipse JDT LS](https://github.com/eclipse/eclipse.jdt.ls)
- [Vim plugin](https://github.com/bazelbuild/vim-bazel)
- Emacs Support
- [codesuki/bazel-mode](https://github.com/codesuki/bazel-mode):
- [brown/bazel-mode](https://github.com/brown/bazel-mode)
- VSCode Support
- [bazelbuild/vscode-bazel](https://github.com/bazelbuild/vscode-bazel)
- [stackb/bazel-stack-vscode](https://github.com/stackb/bazel-stack-vscode). Includes syntax highlighting / flag completion for bazelrc files. Hover support for inline builtin-function and bazel rule documentation. [VSCode Marketplace](https://marketplace.visualstudio.com/items?itemName=StackBuild.bazel-stack-vscode).
- [stackb/bazel-stack-vscode-cc](https://github.com/stackb/bazel-stack-vscode-cc). Supports generation of clang compilation databases. [VSCode Marketplace](https://marketplace.visualstudio.com/items?itemName=StackBuild.bazel-stack-vscode-cc).
- [VSCode Bazel Java extension](https://github.com/salesforce/bazel-ls-vscode) - Proof-of-concept (POC) of a Bazel Java development extension for VS Code
- [rules_xcodeproj](https://github.com/MobileNativeFoundation/rules_xcodeproj) - Generates Xcode projects for your workspace that builds with Bazel
- [hedronvision/bazel-compile-commands-extractor](https://github.com/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, including how it configures cross-compilation for other platforms.
- [PyCharm](https://github.com/tomhanetz/bazel-for-human-beings)
- [sconover/rules_intellij_generate](https://github.com/sconover/rules_intellij_generate) - Plugin-less Bazel/IntelliJ integration
- [georgewfraser/java-language-server](https://github.com/georgewfraser/java-language-server) - Java Language Server (LSP) with support for Bazel-built projects
### BUILD file tools
[bazelbuild/buildtools](https://github.com/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
- [bazelbuild/migration-tooling](https://github.com/bazelbuild/migration-tooling) - Migrate an existing Maven project to Bazel.
- [johnynek/bazel-deps](https://github.com/johnynek/bazel-deps) - Generate bazel dependencies transitively for Maven artifacts, with scala support.
- [rules_maven](https://github.com/pubref/rules_maven) - Rules to define Maven dependencies
- [bazelize-maven-plugin](https://github.com/OrhanKupusoglu/bazelize-maven-plugin) - Maven plugin for migration from Maven to Bazel
- [bazelbuild/gmaven_rules](https://github.com/bazelbuild/gmaven_rules) - Transitive WORKSPACE rules for Google's Maven repository
- [stripe/sbt-bazel](https://github.com/stripe/sbt-bazel) - Easily convert SBT projects to Bazel workspaces
- [wix-incubator/exodus](https://github.com/wix-incubator/exodus) - Easily migrate your JVM code from Maven to Bazel
- [salesforce/bazel-maven-proxy](https://github.com/salesforce/bazel-maven-proxy/) - A local proxy to access Maven resources behind secure repositories or from the local repo
## Resources
### Designs
- [bazelbuild/proposals](https://github.com/bazelbuild/proposals) - Index of all design documents and proposals for Bazel.
- [Bazel's design process](https://bazel.build/designs/index.html)
### Documentation
- [Bazel rules API documentation](https://docs.aspect.build), hosted by Aspect
### Tutorials
#### Official
- [Java](https://docs.bazel.build/versions/master/tutorial/java.html)
- [C++](https://docs.bazel.build/versions/master/tutorial/cpp.html)
- [Android](https://docs.bazel.build/versions/master/tutorial/android-app.html)
- [iOS](https://docs.bazel.build/versions/master/tutorial/ios-app.html)
#### Toolchains
- [c++ toolchains](https://docs.bazel.build/versions/master/tutorial/cc-toolchain-config.html)
#### Codelabs
- [Building Android Apps with Bazel](https://codelabs.developers.google.com/codelabs/bazel-android-intro/index.html)
#### Community
- [Aspects: the fan-fic of build rules](https://www.kchodorow.com/blog/2017/01/10/aspects-the-fan-fic-of-build-rules/)
- [Real-world Bazel](https://github.com/cgbystrom/real-world-bazel) - BUILD files collected from public GitHub projects for reference and learning purposes.
- [Bazel Lesson 1](https://github.com/sayrer/bazel-lesson-1) and [Bazel Lesson 2](https://github.com/sayrer/bazel-lesson-2) - Gradually build a multi-language Bazel project.
- [Bazel Mystery](https://github.com/salesforce/bazel-mystery) - Gamified workspace to learn about Bazel.
- [Bazel and Bazel rules tutorials from Jay Conrod](https://jayconrod.com/tags/bazel), e.g.
- [Migrating to Bazel Part 1](https://jayconrod.com/posts/97/migrating-to-bazel--part-1)
- [Migrating to Bazel Part 2](https://jayconrod.com/posts/98/migrating-to-bazel--part-2)
- [Binary rule](https://jayconrod.com/posts/106/writing-bazel-rules--simple-binary-rule)
- [Library rule, depsets, providers](https://jayconrod.com/posts/107/writing-bazel-rules--library-rule--depsets--providers)
- [Data and runfiles](https://jayconrod.com/posts/108/writing-bazel-rules--data-and-runfiles)
- [Execution](https://jayconrod.com/posts/109/writing-bazel-rules--moving-logic-to-execution)
- [Repository rules](https://jayconrod.com/posts/110/writing-bazel-rules--repository-rules)
- [Platforms and toolchains](https://jayconrod.com/posts/111/writing-bazel-rules-platforms-and-toolchains)
- [WORKSPACE files](https://jayconrod.com/posts/115/organizing-bazel-workspace-files)
### Projects
A list of projects built with Bazel:
- [bazelment/trunk](https://github.com/bazelment/trunk): A collection of C++/Java OSS with BUILD files. e.g. grpc, guava, netty.
- [tensorflow/tensorflow](https://github.com/tensorflow/tensorflow): Computation using data flow graphs for scalable machine learning.
- [abseil/abseil-cpp](https://github.com/abseil/abseil-cpp) - OSS collection of C++ code (compliant to C++11) designed to augment the C++ standard library.
- [GoogleCloudPlatform/distroless](https://github.com/GoogleCloudPlatform/distroless) - Language focused docker images, minus the operating system.
- [google/subpar](https://github.com/google/subpar) - Subpar is a utility for creating self-contained python executables. It is designed to work well with Bazel.
- [alexeagle/angular-bazel-example](https://github.com/alexeagle/angular-bazel-example): Building an Angular application with Bazel
- ABC: Angular Buildtools Convergence [https://g.co/ng/abc](https://g.co/ng/abc)
- [google/startup-os](https://github.com/google/startup-os) - Working examples of Google's Open Source tools and Cloud.
- [lucperkins/colossus](https://github.com/lucperkins/colossus) - An example microservice architecture for Kubernetes using Bazel, Go, Java, Docker, Kubernetes, Minikube, Gazelle, gRPC, Prometheus, Grafana, and more.
- [squzy/squzy](https://github.com/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:
- [kastiglione/bazel-xcode-demo-swift-driver](https://github.com/kastiglione/bazel-xcode-demo-swift-driver): Demonstrates using Bazel and Xcode, to build [apple/swift-driver](https://github.com/apple/swift-driver).
- [nickdecooman/bazel-rust-docker-example](https://github.com/nickdecooman/bazel-rust-docker-example): Demonstrating Bazel setup for Rust services with Cargo and Docker support.
- [kriscfoster/multi-language-bazel-monorepo](https://github.com/kriscfoster/multi-language-bazel-monorepo): Bazel monorepo that includes example golang, python and javascript libraries, binaries and Docker image targets.
- [ekhabarov/bazel-k8s-envoy](https://github.com/ekhabarov/bazel-k8s-envoy): Build Go gRPC micoservices with Bazel and deploy them to k8s.
### Articles
- [Build mobile apps with Bazel. Part 2: iOS](https://tulipemoutarde.be/posts/bazel-for-mobile-apps-part-2/) - Francois Stephany
- [Build mobile apps with Bazel. Part 1: Android](https://tulipemoutarde.be/posts/bazel-for-mobile-apps-part-1/) - Francois Stephany
- [(In Japanese) Building C++ with Bazel / C++ビルド環境としてのBazel導入試行](http://blog.matsuokah.jp/entry/2015/12/15/080000)
- [Nix + Bazel = fully reproducible, incremental builds](https://www.tweag.io/posts/2018-03-15-bazel-nix.html)
- [Production Code Splitting With Bazel](https://medium.com/@gregmagolan/production-code-splitting-with-bazel-8a7da242bf83) - Greg Magolan (Google)
- [Build large polyglot projects with Bazel... now with Haskell support](https://www.tweag.io/posts/2018-02-28-bazel-haskell.html)
- [Managing a Go monorepo with Bazel](https://filipnikolovski.com/posts/managing-go-monorepo-with-bazel/) - Filip Nikolovski (InPlayer)
- [How to Create a Persistent Worker for Bazel](https://medium.com/@mmorearty/how-to-create-a-persistent-worker-for-bazel-7738bba2cabb) - Mike Morearty (Asana)
- [We Switched from Maven to Bazel and Builds Got 10x Faster](https://redfin.engineering/we-switched-from-maven-to-bazel-and-builds-got-10x-faster-b265a7845854) - Jason Lunz (Redfin)
- [Angular Bazel Build With Dev Server](http://www.syntaxsuccess.com/viewarticle/angular-bazel-build-with-dev-server) - Torgeir "Tor" Helgevold
- [Bazel Conference 2017](https://medium.com/@justin_16029/bazel-conference-2017-85a4f397d69c) - Justin Poehnelt
- [What Angular is doing with Bazel and Closure](https://medium.com/@Jakeherringbone/what-angular-is-doing-with-bazel-and-closure-21f526f64a34)
- [Building Docker Images Without Docker](https://medium.com/bitnami-perspectives/building-docker-images-without-docker-c619061b13a9)
- [Bazel Golang Hello World](https://chrislovecnm.com/golang/bazel/bazel-hello-world)
- [Migrating from Gradle to Bazel](https://www.pgrs.net/2015/09/01/migrating-from-gradle-to-bazel)
- [Benchmarking the Bazel build system on real-life C++](http://nicolovaligi.com/benchmark-bazel-build-cpp.html)
- [Migrating Gypsum and CodeSwitch to Bazel](http://jayconrod.com/posts/97/migrating-to-bazel-part-1) - Jay Conrod (Google)
- [Create Go Monorepo with Go-modules and Bazel](https://medium.com/@tduble94/create-go-monorepo-with-go-modules-and-bazel-95f00cf571d3) - Iurii Panarin
### Videos
- [Bazel Opportunities, Tradeoffs, and Rollout](https://www.youtube.com/watch?v=vYTpnTgK0Z4) - Kyle Cordes (Oasis Digital)
- [code::dive 2020: Introduction to Bazel to build C++ and Python](https://www.youtube.com/watch?v=vEQQ9QOVpdU) - Xavier Bonaventura (BMW Group)
- [KubeCon Europe 2019: Reproducible Development and Deployment with Bazel and Telepresence](https://www.youtube.com/watch?v=tD0FIlxO1AQ) - Christian Roggia (Engel & Völkers)
- [ScalaSphere 2018: Using Bazel to build Scala](https://www.youtube.com/watch?v=iSLDQPsWvGs) - Andy Scott (Stripe)
- [GopherChina 2018: Bazel build //:Go](https://www.youtube.com/watch?v=oTS_xxZyhG8) - Yuan He (流利说/liulishuo.com)
- [How I love being ejected: Customizing your Angular build with Bazel](https://www.youtube.com/watch?v=ieRJwFGWEOM) - Greg Magolan (Angular team)
- [SF Scala: Bazel - a Brief Overview](https://www.youtube.com/watch?v=m9Vypu4AYc4) - Ulf Adams (Google)
- [Bazel for building Angular applications at Angular Lunch](https://www.youtube.com/watch?v=KmaE6z_ECRg) - Kyle Cordes
- [Deep Dive of Google's Angular Build Toolchain](https://www.youtube.com/watch?v=z9Q_2N9oaG8) - Alex Eagle (Google)
- [Bazel Conference 2017 Opening Remarks](https://www.youtube.com/watch?v=3eFllvz8_0k) - Helen Altshuler, John Field, Ulf Adams (Google)
- [Bazel Remote Execution and Remote Caching w/ Two Sigma and Uber](https://www.youtube.com/watch?v=_bPyEbAyC0s) - Alpha Lam (Two Sigma), George Gensure (Uber)
- [Tensorflow with Bazel — Lessons Learned](https://www.youtube.com/watch?v=Rw-KrbfyABQ) - Gunhan Gulsoy (Google)
- [Building Real-time Systems with Bazel w/ SpaceX](https://www.youtube.com/watch?v=t_3bckhV_YI) - Matt Sachtler, Patrick Conrad (SpaceX)
- [Hacks and Tips for Incremental Adoption of Bazel for iOS w/ Pinterest](https://www.youtube.com/watch?v=wewAVF-DVhs) - Rahul Malik, Brandon Kase, Jerry Marino (Pinterest)
- [Front End Development with Bazel: Angular/TypeScript and Persistent Workers w/ Asana](https://www.youtube.com/watch?v=0pgERydGyqo) - Mike Morearty (Asana), Alex Eagle (Google)
- [Scala with Bazel w/ Wix, Stripe, Databricks](https://www.youtube.com/watch?v=wCkqtM44BvU) - Ittai Zeidman (Wix), Oscar Boykin (Stripe), Ahir Reddy (DataBricks)
- [Skylark: The Bazel Extensibility Language](https://www.youtube.com/watch?v=xLgIKcbF6SA) - Laurent Le Brun (Google)
- [Using Bazel for Fast, Correct Docker Deployments w/ Databricks](https://www.youtube.com/watch?v=RS1aiQqgUTA) - Miles Yucht (Databricks), Matthew Moore (Google)
- [Platforms and Toolchains in Bazel](https://www.youtube.com/watch?v=TXwmwPB0i_Y) - John Cater (Google)
- [Building Kubernetes \[a Go binary\] with Bazel](https://www.youtube.com/watch?v=j6ZVaJlokhM) - Jeff Grafton (Google)
- [Integration testing with Bazel w/Dropbox](https://www.youtube.com/watch?v=muvU1DYrY0w) - Benjamin Peterson (Dropbox)
- [Bazel Conference 2017 playlist](https://www.youtube.com/playlist?list=PLxNYxgaZ8RseY0KmkXQSt0StE71E7yizG)
- [GothamGo 2017: A Go implementation of the Skylark Configuration Language](https://www.youtube.com/watch?v=9P_YKVhncWI) - Alan Donovan (Google)
- [Bazel: Google's Extensible, Multilingual, Scalable Build System DevTools@Scale2017](https://www.youtube.com/watch?v=-M0FoRNpF8s) - Dmitry Lomov (Google)
- [Building Go with Bazel at Golang UK Conference 2017](https://www.youtube.com/watch?v=2TKxuERTnks) - Paul Bellamy
- [Building Software At Google Scale](https://www.youtube.com/watch?v=6GCDfoAOKIY) - Ulf Adams, Helen Altshuler, David Stanke (Google)
- [Bazel: Google's own build tool, now publicly available in Beta](https://www.youtube.com/watch?v=G-4jqDgILCM) - Paul Johnston
- [Bazel at FrOSCon](https://www.youtube.com/watch?v=8p0RquTT69M) - Klaus Aehlig (Google)
- [Building Python with Bazel](https://www.youtube.com/watch?v=zaymCO1A1dM) - Benjamin Peterson (Dropbox)
- [Bazel at the Dart Developer Summit 2016](https://www.youtube.com/watch?v=zZnGUknpFMM) - Damien Martin-Guillerez (Google)
### Podcasts
- [Bazel; CppCast](https://cppcast.com/bazel/) Oct 16th, 2020 - Lukács Berki and Julio Merino
- [Bazel with Tony Aiuto; Google Cloud Podcast #153](https://www.gcppodcast.com/categories/bazel/) Oct 31st, 2018 - Tony Aiuto
- [AiA 247: Bazel with Alex Eagle; Adventures in Angular](https://player.fm/series/all-angular-podcasts-by-devchattv/aia-247-bazel-with-alex-eagle) Jul 9th, 2019 - Alex Eagle (Google)
### Books
- [Beginning Bazel: Building and Testing for Java, Go, and More](https://www.amazon.com/Beginning-Bazel-Building-Testing-Java/dp/1484251938) - P.J. McNerney; Apress, 1st ed. edition (December 24, 2019) 978-1484251935
- [Core Bazel: Fast Builds For Busy People](https://www.amazon.com/Core-Bazel-Fast-Builds-People-ebook/dp/B08DXBR2TF/ref=cm_cr_arp_d_product_top?ie=UTF8) - B. Mustiata; Amazon Kindle (July 28, 2020) ASIN: B08DXBR2TF
- [Getting Started with Bazel](https://learning.oreilly.com/library/view/getting-started-with/9781492077107/) - B. Muschko; O'Reilly Media (February 2020)
### Slides
- [Building Gerrit with Bazel at Gerrit User Conference 2016](http://ostrovsky.org/gerrit/bazel-build-gerrit/) - David Ostrovsky
### Blogs
- [Official Bazel Blog](https://blog.bazel.build)
- [Kristina Chodorow's blogposts on Bazel](https://www.kchodorow.com/blog/category/bazel)
- [Envoy as an API Gateway](https://ekhabarov.com/post/envoy-as-an-api-gateway/) - Build Go microservices with Bazel.
### Community
- [#bazelbuild on Slack](https://slack.bazel.build)
- [BuildTeamWorld on Slack](https://buildteamworld.herokuapp.com) - A community slack for BuildFarm, BuildGrid, Bazel and general build teams.
- [`#bazel` on Freenode](http://webchat.freenode.net/?channels=bazel)
- [Stack Overflow](http://stackoverflow.com/questions/tagged/bazel)
- [Bazel users mailing list](https://groups.google.com/forum/#!forum/bazel-discuss)
- [Bazel developers mailing list](https://groups.google.com/forum/#!forum/bazel-dev)
- [Why Google Stores Billions of Lines of Code in a Single Repository
](https://cacm.acm.org/magazines/2016/7/204032-why-google-stores-billions-of-lines-of-code-in-a-single-repository/fulltext) ([Video](https://www.youtube.com/watch?v=W71BTkUbdqE) at @Scale 2015)