All Projects → jin → Awesome Bazel

jin / Awesome Bazel

Licence: apache-2.0
A curated list of Bazel rules, tooling and resources.

Projects that are alternatives of or similar to Awesome Bazel

Flubucore
A cross platform build and deployment automation system for building projects and executing deployment scripts using C# code.
Stars: ✭ 695 (+8.59%)
Mutual labels:  build, build-system, continuous-integration
Bazel
a fast, scalable, multi-language and extensible build system
Stars: ✭ 17,790 (+2679.69%)
Mutual labels:  build, bazel, build-system
Rules haskell
Haskell rules for Bazel.
Stars: ✭ 196 (-69.37%)
Mutual labels:  bazel, build-system, bazel-rules
Please
High-performance extensible build system for reproducible multi-language builds.
Stars: ✭ 1,856 (+190%)
Mutual labels:  build, bazel, build-system
rules poetry
Bazel rules that use Poetry for Python package management
Stars: ✭ 40 (-93.75%)
Mutual labels:  bazel, bazel-rules
myrepo
continuous integration rep
Stars: ✭ 41 (-93.59%)
Mutual labels:  build, continuous-integration
create-bazel-workspace
Generate a new polyglot Bazel workspace with minimal configuration
Stars: ✭ 16 (-97.5%)
Mutual labels:  bazel, build-system
rules clojure
Clojure rules for Bazel
Stars: ✭ 27 (-95.78%)
Mutual labels:  bazel, bazel-rules
airin
A framework for automated migration of your projects to Bazel build system.
Stars: ✭ 21 (-96.72%)
Mutual labels:  build, bazel
jagen
A software engineer's workspace manager and build systems wrapper
Stars: ✭ 32 (-95%)
Mutual labels:  build, build-system
Bazel Remote
A remote cache for Bazel
Stars: ✭ 260 (-59.37%)
Mutual labels:  build, bazel
ios-bazel-users
Resources for using bazel for iOS development
Stars: ✭ 80 (-87.5%)
Mutual labels:  bazel, bazel-rules
rules gwt
Bazel rules for GWT
Stars: ✭ 20 (-96.87%)
Mutual labels:  bazel, bazel-rules
bzl
Bzl - Integrated CLI + UI + VSCode Extension for Bazel
Stars: ✭ 43 (-93.28%)
Mutual labels:  build, bazel
real-world-bazel
Bazel build files collected from real-world GitHub projects
Stars: ✭ 24 (-96.25%)
Mutual labels:  build, bazel
svelte-ts
[WIP] Tools for building Svelte apps with TS
Stars: ✭ 89 (-86.09%)
Mutual labels:  bazel, bazel-rules
Rules typescript
MOVED to https://github.com/bazelbuild/rules_nodejs/tree/3.x/third_party/github.com/bazelbuild/rules_typescript
Stars: ✭ 280 (-56.25%)
Mutual labels:  bazel, bazel-rules
Platform Espressif32
Espressif 32: development platform for PlatformIO
Stars: ✭ 333 (-47.97%)
Mutual labels:  build, continuous-integration
Gaia
Build powerful pipelines in any programming language.
Stars: ✭ 4,534 (+608.44%)
Mutual labels:  build, continuous-integration
grab-bazel-common
Common rules and macros for Grab's Android projects built with Bazel.
Stars: ✭ 20 (-96.87%)
Mutual labels:  bazel, bazel-rules

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#
Clojure
Closure
CSS
CMake
CocoaPods
CODEOWNERS
D
Dart
Databricks
Docker
ebook (pdf, epub, mobi)
ECS
Elm
Emacs Lisp (elisp)
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
Microsoft Azure
NativeScript
Nixpkgs
Node.js / JavaScript
OCaml
OCI Containers
OpenAPI/Swagger
Packaging (RPM/DEB)
Pandoc
PHP
Protobuf
Purescript
Python
Ragel
R
ReasonML, BuckleScript
Ruby
Rust
Sass
Scala
Shell
SonarQube
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.

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 and .bzl 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

Online courses

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].