• Stars
    star
    1,150
  • Rank 40,561 (Top 0.8 %)
  • Language
  • License
    Apache License 2.0
  • Created about 7 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A curated list of Bazel rules, tooling and resources.

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
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)

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

More Repositories

1

raytracer

Animated parallel raytracer in TypeScript compiled to WebGL, using GPU.js. Specular, Lambertian reflections included.
TypeScript
64
star
2

rules_ocaml

OCaml build rules for Bazel
Starlark
37
star
3

android-projects

Android benchmark projects for Bazel and Gradle
Java
30
star
4

bazel-glossary

A Glossary of Bazel Terminology - now upstreamed to docs.bazel.build
30
star
5

create-bazel-workspace

Generate a new polyglot Bazel workspace with minimal configuration
Python
19
star
6

scheme.ml

Scheme (R6RS subset) interpreter written in OCaml
OCaml
16
star
7

subtyping

An implementation of structural subtyping of records and functions
Haskell
13
star
8

NUSWhispers-iOS

iOS app for an anonymous confession platform.
Swift
10
star
9

hindley-milner

Hindley-Milner type inference implementation in Haskell
Haskell
9
star
10

rules_experimental_android

Experimental Bazel Android rules and tooling integration
Python
6
star
11

dotfiles

Shell
5
star
12

rules_eta

Eta rules for Bazel
Python
5
star
13

algorithms_and_data_structures.rb

Implementations of algorithms, data structures and HackerRank solutions in Ruby.
Ruby
4
star
14

bazel-android-ndk-example

Build C++ for Android using Bazel and NDK
Python
3
star
15

nusmods-gem

A ruby interface for NUSModsAPI
Ruby
3
star
16

BasicRxJavaSample-Bazel

BasicRxJavaSample built with Bazel Android Rules
Java
3
star
17

rules_maven

Do not depend on this repository. It has been merged into https://github.com/bazelbuild/rules_jvm_external
Python
3
star
18

scala-brainfuck-interpreter

Result of a very long flight and no internet access.
Scala
2
star
19

IVLE-Forum-Downloader

Script to download your favourite IVLE forum.
Ruby
2
star
20

hnrb

A ruby wrapper for the new Hacker News API
Ruby
2
star
21

bazel-nix-demo

Python
2
star
22

sinatra-react

A basic application skeleton for Sinatra + React.js
JavaScript
2
star
23

waspmote

various sketches (ultrasonic sensor, WSN and arduino compatibility) for Libelium Waspmotes
Java
2
star
24

hardwarezone-scraper

A scraper for the EDMW/Singlish neural network corpus.
Ruby
2
star
25

build-scientist

do science with your build system
Ruby
1
star
26

project-euler

Python
1
star
27

sketches

a collection of arduino sketches
Java
1
star
28

ep-client

a java gui client for a carpark monitoring system
Java
1
star
29

hnobituaries

Discover which technologies are dead according to Hacker News.
Ruby
1
star
30

ep

carpark availability tracker using wireless nodes
Python
1
star
31

djangobook

learning django with djangobook
Python
1
star