GithubHelp home page GithubHelp logo

bduffany / awesome-bazel Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jin/awesome-bazel

0.0 1.0 0.0 321 KB

A curated list of Bazel rules, tooling and resources.

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

License: Apache License 2.0

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
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
Pandoc
PHP
Protobuf
Purescript
Python
Ragel
R
ReasonML, BuckleScript
Ruby
Rust
Sass
Scala
Shell
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
  • 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.
  • 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 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

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 adds68 avatar cgruber avatar filmil avatar finnball avatar globegitter avatar guw avatar haikalpribadi avatar j3parker avatar jin avatar jullianoacqio avatar jxramos avatar kastiglione avatar kernald avatar mattem avatar nictuku avatar pcj avatar petroseskinder avatar pxyup avatar regisd avatar rmohr avatar samolisov avatar samschlegel avatar sayrer avatar thii avatar tmandry avatar tmc avatar yannic avatar yujunz avatar zetten avatar

Watchers

 avatar

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.