SaaSHub helps you find the best software and product alternatives Learn more →
Top 23 Starlark Bazel Projects
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
rules_foreign_cc
Build rules for interfacing with "foreign" (non-Bazel) build systems (CMake, configure-make, GNU Make, boost, ninja, Meson)
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
rules_proto_grpc
Bazel rules for building Protobuf and gRPC code and libraries from proto_library targets
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
lots of questions here regarding what this product is. I guess i can provide some information for the context, from a perspective of an outside contributor.
Chainguard Images is a set of hardened container images.
They were built by the original team that brought you Google's Distroless (https://github.com/GoogleContainerTools/distroless)
However, there were few problems with Distroless:
1. distroless were based on Debian - which in turn, limited to Debian's release cadence for fixing CVE.
2. distroless is using bazelbuild, which is not exactly easy to contrib, customize, etc...
3. distroless images are hard to extend.
Chainguard built a new "undistro" OS for container workload, named Wolfi, using their OSS projects like melange (for packaging pkgs) and apko (for building images).
The idea is (from my understanding) is that
1. You don't have to rely on upstream to cut a release. Chainguard will be doing that, with lots of automation & guardrails in placed. This allow them to fix vulnerabilties extremely fast.
The same reason Bazel builds avoid using Cargo when building Rust software, so I'll describe why Bazel would do this:
- Bazel wants to cache remote resources, like each respective crate's source files.
- Bazel then wants to build each crate in a sandbox, and cache the build artifacts
This is an established practice, and Nix wants to drive the build for the same reasons.
See:
Project mention: Things I've learned about building CLI tools in Python | news.ycombinator.com | 2023-10-24What's SV?
I honestly don't know why anyone would use that... as in what does Bazel do better than virtually anything else that can provide this functionality. But, I used to be an ops engineer in a big company which wanted everything to be Maven, regardless of whether it does it well or not. So we built and deployed with Maven a lot of weird and unrelated stuff.
Not impossible, but not anything I'd advise anyone to do on their free time.
Specifically wrt' the link you posted, if you look here: https://github.com/bazelbuild/rules_python/blob/main/python/... it says that only pure Python wheels are supported, but that's also a lie, they don't support half of the functionality of pure Python wheels.
So, definitely not worth using, since lots of functionality is simply not there.
Honestly Bazel and Java is actually a really nice experience. Pull in third party stuff from https://github.com/bazelbuild/rules_jvm_external. There is built in support for uber jar builds by adding a _deploy.jar suffix to binary jars. Protobuf and other codegen is super easy!
For Bazel you can find a good example of this functionality in rules_js with the integration of pnpm workspaces and the npm_package rule (macro) which recently gained a .publish runnable target that will publish the package.
Project mention: Building a modern gRPC-powered microservice using Node.js, Typescript, and Connect | dev.to | 2023-04-20import { StateTransitionService } from "@state-transitions/definition"; import { createConnectTransport } from "@bufbuild/connect-node"; import { createPromiseClient } from "@bufbuild/connect"; // The following line is due to these issues // > https://github.com/aspect-build/rules_ts/issues/159#issuecomment-1437399901 // > https://github.com/microsoft/TypeScript/issues/47663#issuecomment-1270716220 import type {} from "@bufbuild/protobuf"; export const transport = createConnectTransport({ baseUrl: `http://localhost:8080`, httpVersion: "1.1", }); export const client = createPromiseClient(StateTransitionService, transport);
Starlark Bazel related posts
- Chainguard Images now available on Docker Hub
- Language focused Docker images, minus the operating system
- Build native JVM binaries with Bazel: rules_graalvm
- Using Alpine can make Python Docker builds 50× slower
- Smaller and Safer Clojure Containers: Minimizing the Software Bill of Materials
- Ko: Easy Go Containers
- Long Term Ownership of an Event-Driven System
-
A note from our sponsor - SaaSHub
www.saashub.com | 19 Apr 2024
Index
What are some of the best open-source Bazel projects in Starlark? This list will help you:
Project | Stars | |
---|---|---|
1 | distroless | 17,645 |
2 | examples | 779 |
3 | rules_nodejs | 718 |
4 | rules_foreign_cc | 638 |
5 | rules_rust | 607 |
6 | rules_python | 494 |
7 | rules_apple | 474 |
8 | bazel-skylib | 363 |
9 | rules_scala | 350 |
10 | rules_jvm_external | 305 |
11 | rules_swift | 296 |
12 | rules_js | 279 |
13 | rules_nixpkgs | 263 |
14 | toolchains_llvm | 262 |
15 | bazel-coverage-report-renderer | 259 |
16 | rules_proto_grpc | 240 |
17 | rules_cc | 161 |
18 | rules_gitops | 156 |
19 | platforms | 102 |
20 | bazel-embedded | 92 |
21 | rules_ts | 91 |
22 | gcc-toolchain | 88 |
23 | rules_scala | 66 |