bazel-skylib - Common useful functions for writing custom build rules with Skylark

  •        20

Skylib is a standard library that provides functions useful for manipulating collections, file paths, and other features that are useful when writing custom build rules in Bazel.This library is currently under early development. Be aware that the APIs in these modules may change during this time.



Related Projects

rules_go - Go rules for Bazel

  •    Go

The master branch is only guaranteed to work with the latest version of Bazel.Create a file at the top of your repository named WORKSPACE and add one of the snippets below, verbatim. This will let Bazel fetch necessary dependencies from this repository and a few others.

Bazel - Google's own build tool

  •    Java

Bazel is a build tool that builds code quickly and reliably. It is used to build the majority of Google's software, and thus it has been designed to handle build problems present in Google's development environment. A comprehensive, built-in set of rules lets you build software for a wide variety of languages and platforms right out of the box.

skylark - Skylark in Go: the Skylark configuration language, implemented in Go

  •    Go

This is the home of the Skylark in Go project. Skylark in Go is an interpreter for Skylark, implemented in Go.Skylark is a dialect of Python intended for use as a configuration language. Like Python, it is an untyped dynamic language with high-level data types, first-class functions with lexical scope, and garbage collection. Unlike CPython, independent Skylark threads execute in parallel, so Skylark workloads scale well on parallel machines. Skylark is a small and simple language with a familiar and highly readable syntax. You can use it as an expressive notation for structured data, defining functions to eliminate repetition, or you can use it to add scripting capabilities to an existing application.

guetzli - Perceptual JPEG encoder

  •    C++

Guetzli is a JPEG encoder that aims for excellent compression density at high visual quality. Guetzli-generated images are typically 20-30% smaller than images of equivalent quality generated by libjpeg. Guetzli generates only sequential (nonprogressive) JPEGs due to faster decompression speeds they offer.There's also a Bazel build configuration provided. If you have Bazel installed, you can also compile Guetzli by running bazel build -c opt //:guetzli.

colossus - Colossus — An example microservice architecture for Kubernetes using Bazel, Go, Java, Docker, Kubernetes, Minikube, Gazelle, gRPC, Prometheus, Grafana, and more

  •    Python

Wait a second, these services don't do anything meaningful! Nope, they sure don't. But that's okay because the point of this project is to show you how to get the basic (yet not-at-all-trivial) plumbing to work. Colossus is a boilerplate project that's meant as a springboard to more complex and meaningful projects. Getting all of these technologies to work together was a real challenge. I had to dig through countless GitHub issues and dozens of example projects to make all these things work together. I'm offering this repo as a starter pack for other people with a Bazel monorepo targeting Kubernetes.

android-arscblamer - ArscBlamer is a command-line tool that can parse an Android app's resources

  •    Java

ArscBlamer is a command-line tool that can parse an Android app's resources.arsc file and extract useful, actionable information about its contents.NB: Relative file paths for the APK will not work with bazel run. To use relative file paths, see the Building section.

distroless - 🥑 Language focused docker images, minus the operating system.

  •    Python

"Distroless" images contain only your application and its runtime dependencies. They do not contain package managers, shells any other programs you would expect to find in a standard Linux distribution.For more information, see this talk (video).

asylo - Asylo Framework

  •    C++

The v0.2 documentation can be found at Example code can be found in the asylo/examples directory. This directory has a working Bazel workspace and example applications that can be used as the start of your own project.

distroless - 🥑 Language focused docker images, minus the operating system.

  •    Python

"Distroless" images contain only your application and its runtime dependencies. They do not contain package managers, shells or any other programs you would expect to find in a standard Linux distribution. For more information, see this talk (video).

mosh-chrome - Mosh for Chrome

  •    C++

This is a Mosh client port for the Chrome web browser using Native Client. It is particularly useful with Chrome OS. You need to build on Linux, and probably Ubuntu Linux. You will also need the Bazel build system installed. Go here to get it. There's a Debian package, so installation is easy; the only caveat is that it requires Java (sorry).

tensorflow_cc - Build and install TensorFlow C++ API library.

  •    CMake

This repository makes possible the usage of the TensorFlow C++ API from the outside of the TensorFlow source code folders and without the use of the Bazel build system. This repository contains two CMake projects. The tensorflow_cc project downloads, builds and installs the TensorFlow C++ API into the operating system and the example project demonstrates its simple usage.

sparkle - Haskell on Apache Spark.

  •    Haskell

sparkle [spär′kəl]: a library for writing resilient analytics applications in Haskell that scale to thousands of nodes, using Spark and the rest of the Apache ecosystem under the hood. See this blog post for the details. There is experimental support for bazel. This mechanism doesn't require executing sparkle package.

Rules Engine


Rules Engine is a C# project that makes it easier for developers to define business rules on domain objects without coupling the domain object to the business rule. The rules engine supports cross-field validation and conditional validation. Rules are interface-based and are e...

Drools - Business Rules Management System

  •    Java

Drools is a Business Rules Management System (BRMS) solution. It provides a core Business Rules Engine (BRE), a web authoring and rules management application (Drools Workbench) and an Eclipse IDE plugin for core development. Drools Fusion provides complex event processing features.

aws-config-rules - [Node, Python, Java] Repository of sample Custom Rules for AWS Config.

  •    Python

AWS Community repository of custom Config rules. Here's the list. Contributions welcome. Instructions for leveraging these rules are below.With the latest release for AWS Config Rules (, periodic rules can now be triggered without the need for a configuration snapshot. Please refer to for an example of a periodic rule triggered via scheduled notification. This is now the recommended way to author a periodic rule. As such, we have moved all existing periodic rules in this repository that leverage the old configuration snapshot periodic trigger under the old-periodic/ directory.

tslint-eslint-rules - Improve your TSLint with the missing ESLint rules

  •    TypeScript

You can also add other tslint config packages to combine these rules with other custom community rules. In your tslint.json file, insert the rules as described below.

stylelint-order - A plugin pack of order related linting rules for stylelint.

  •    Javascript

A plugin pack of order related linting rules for stylelint. Every rule support autofixing (stylelint --fix). Add stylelint-order to your stylelint config plugins array, then add rules you need to the rules list. All rules from stylelint-order need to be namespaced with order.

SharePoint Health Analyzer Rules


The SharePoint Health Analyzer Rules project is a collection of SharePoint health analyzer rules that extends many of the out of the box rules and adds important additional rules that help to ensure your SharePoint environment is kept in optimal condition.

rrule - JavaScript library for working with recurrence rules for calendar dates.

  •    Javascript

Library for working with recurrence rules for calendar dates.rrule.js supports recurrence rules as defined in the iCalendar RFC, with a few important differences. It is a partial port of the rrule module from the excellent python-dateutil library. On top of that, it supports parsing and serialization of recurrence rules from and to natural language.

rulerz - Powerful implementation of the Specification pattern in PHP

  •    PHP

The central idea of Specification is to separate the statement of how to match a candidate, from the candidate object that it is matched against. Business rules can be written as text using a dedicated language, very close to SQL, in which case we refer to them as rules or they can be encapsulated in single classes and referred to as specifications.