example-bazel-monorepo - πŸŒΏπŸ’š Example Bazel-ified monorepo, supporting Golang, Java, Python, Scala, and Typescript

  •        142

Example Bazel-ified monorepo, supporting Golang, Java, Python, Scala, and Typescript. Cloud Infrastructure-as-Code is done using Terraform.

https://buildkite.com/thundergolfer-inc/the-one-true-bazel-monorepo
https://github.com/thundergolfer/example-bazel-monorepo

Tags
Implementation
License
Platform

   




Related Projects

angular-bazel-example - MOVED to the bazel nodejs monorepo πŸ‘‰

  •    TypeScript

This is experimental, as part of Angular Labs! There may be breaking changes. This is part of the ABC project. The overall goal is to make it possible to develop Angular applications the same way we do at Google.

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.

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.

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.

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.


isopod - An expressive DSL and framework for Kubernetes configuration without YAML

  •    Go

Isopod is an expressive DSL framework for Kubernetes configuration. Without intermediate YAML artifacts, Isopod renders Kubernetes objects as Protocol Buffers, so they are strongly typed and consumed directly by the Kubernetes API. With Isopod, configurations are scripted in Starlark, a Python dialect by Google also used by Bazel and Buck build systems. Isopod offers runtime built-ins to access services and utilities such as Vault secret management, Kubernetes apiserver, HTTP requester, Base64 encoder, and UUID generator, etc. Isopod uses separate runtime for unit tests to mock all built-ins, providing the test coverage not possible before.

asciiflow - ASCIIFlow

  •    TypeScript

ASCIIFlow is a client-side only web based application for drawing ASCII diagrams. You can use it at asciiflow.com. ASCIIFlow is built with Bazel. Bazel is most easily installed to the correct version through Bazelisk. See .bazelversion for the correct version if you aren't using Bazelisk.

rxterm - Functional reactive terminals in C++ ⚑⌨️

  •    C++

A C++ library for functional-reactive terminals. RxTerm is a lean alternative to ncurses for many applications. The library builds with Buckaroo and either Buck or Bazel. It requires a C++ 14 compiler.

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.

oppia-android - A free, online & offline learning platform to make quality education accessible for all

  •    Kotlin

Oppia is an online learning tool that enables anyone to easily create and share interactive activities (called 'explorations'). These activities simulate a one-on-one conversation with a tutor, making it possible for students to learn by doing while getting feedback. The Android app is a new, not-yet-released frontend for Oppia that provides access to Oppia's curated numeracy lessons for users who may not have regular access to internet connectivity, and in a way that can be easily shared across multiple members of the same household.

oao - A Yarn-based, opinionated monorepo management tool

  •    Javascript

A Yarn-based, opinionated monorepo management tool.This uses the local oao package inside your monorepo.

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

asylo - Asylo Framework

  •    C++

The v0.2 documentation can be found at asylo.dev. 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.

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.

WebClients - Monorepo hosting the proton web clients

  •    TypeScript

This project is a monorepo hosting the proton web clients. It includes the web applications, their dependencies & shared modules as well as all tooling surrounding development of the web clients (as well as some additional miscellaneous things). Technically, this monorepo is based on Yarn 2 & Yarn Workspaces, with unified versioning for all packages inside.

Buck - An Android build tool from Facebook

  •    Java

Buck is a build system for Android that encourages the creation of small, reusable modules consisting of code and resources. Because Android applications are predominantly written in Java, Buck also functions as a Java build system. Buck builds independent artifacts in parallel to take advantage of multiple cores. Further, it reduces incremental build times by keeping track of unchanged modules so that the minimal set of modules is rebuilt.

Turborepo - The High-performance Build System for JavaScript & TypeScript Codebases

  •    Go

Turborepo is a high-performance build system for JavaScript and TypeScript codebases. It reimagines build system techniques used by Facebook and Google to remove maintenance burden and overhead. It will remember what you've built and skip the stuff that's already been computed.

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

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

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.






We have large collection of open source products. Follow the tags from Tag Cloud >>


Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.