Git Product home page Git Product logo

awesome-bazel's Introduction

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

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

awesome-bazel's People

Contributors

aaliddell avatar alexeagle avatar bmuschko avatar cgruber avatar cpsauer avatar ekhabarov avatar filmil avatar globegitter avatar guw avatar haikalpribadi avatar j3parker avatar jin avatar jullianoacqio avatar kastiglione avatar kriscfoster avatar mostynb avatar pcj avatar petemounce avatar petroseskinder avatar regisd avatar rmohr avatar rupertks avatar sammi avatar samschlegel avatar sayrer avatar sluongng avatar thii avatar vertexwahn avatar yujunz avatar zetten avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

awesome-bazel's Issues

Bazel-integration-testing

Not sure which exact sub part it should be added so I opened an issue.
Short description:

Bazel-integration-testing aims to give confidence when developing code that is strongly dependent on Bazel. 
It does so by allowing you to have isolated reproducible tests which run Bazel inside of them.

Thanks for your help!

Bazel rules for calling Pandoc

Hi Jingwen,

I see your awesome (!) awesome-bazel page mentions the LaTeX rules that I maintain. Similar to those, I recently published rules for calling Pandoc to convert between document formats. It makes use of the official Pandoc release binaries instead of relying on the one provided by your OS/distro. At Prodrive, we use these together with the LaTeX rules to combine documentation from various sources into larger works (e.g., user manuals).

https://github.com/ProdriveTechnologies/bazel-pandoc

I don't think that I, as the author, should have a say in whether this classifies as being awesome or not. Still, I thought I'd get in touch to point you to it. Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.