Skip to content

hmthanh/awesome-bazel

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

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
Apple (iOS, macOS, tvOS, watchOS)
ANTLR
ARM Mbed OS
Bison
BOSH
Brotli
C++
C#
Closure
CSS
CMake
CocoaPods
CODEOWNERS
D
Dart
Docker
ECS
Elm
Emscripten
Flex
Go
Graal
Grafana
Groovy
GWT
Haskell
Helm (Kubernetes)
Homebrew
Hugo
Idris
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
Maya
NativeScript
Nixpkgs
Node.js / JavaScript
OCaml
OCI Containers
OpenAPI/Swagger
Pandoc
PHP
Protobuf
Purescript
Python
Ragel
R
ReasonML, BuckleScript
Ruby
Rust
Sass
Scala
SonarQube
Swift
Terraform
Twirl
TypeScript
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 remote cache for Bazel using HTTP/1.1 with --remote_rest_cache
  • bazelbuild/bazel-buildfarm - Self-hosted remote caching and execution service written in Java
  • Buildbarn - Self-hosted remote caching and execution service written in Go
  • 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.
  • Zenreach/hydroponics - Serverless CI for Bazel making use of S3 for caching.

Project generators

Tools for generating WORKSPACE and BUILD files from source code.

  • blakefiler.py - Generate a Makefile and tarball-able distribution using bazel query
  • Lavender - Generate Visual Studio projects that uses Bazel for the actual building
  • 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 for Go projects.
  • 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
  • Gazelle JS Plugin Generate BUILD files automatically for an existing Javascript or Typescript project with npm dependency analysis.
  • llvmbzlgen - Tools for generating Bazel BUILD targets from LLVM CMakeLists

Editors

BUILD file tools

bazelbuild/buildtools contains:

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

Migration

Misc

Resources

Designs

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

About

A curated list of Bazel rules, tooling and resources.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published