jxramos / awesome-bazel

A curated list of Bazel rules, tooling and resources.

Home Page:https://jin.github.io/awesome-bazel

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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
.NET (C#, Nuget)
Amazon web services (AWS)
Android
Apple (iOS, macOS, tvOS, watchOS)
ANTLR
ARM Mbed OS
Bison
BOSH
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
Kotlin
  • cgruber/rules_kotlin (a temporary maintenance fork of the legacy rules above, until Google releases their updated rules, including 1.3 support)
Kubernetes
LaTeX
LLVM toolchain
M4
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

Resources

Designs

Tutorials

Official

Toolchains

Codelabs

Community

Projects

A list of projects built with Bazel:

Articles

Videos

Podcasts

Books

Slides

Blogs

Community

Misc

About

A curated list of Bazel rules, tooling and resources.

https://jin.github.io/awesome-bazel

License:Apache License 2.0