Top 22 Starlark Bazel Projects
-
In my day job, we've been using Google's Distroless images for some time. The benefits of this are well known: smaller image and attack surface. However, what we didn't expect is to still to have to deal with a significant amount of toil dealing with vulnerability triage (see Snyk output below for distroless/base). It could be argued our SDLC is a little, clunky and we're not quite ready for scratch (Graal, Golang, etc.,) images yet so what can we do in the interim? 🤔
-
I've seen rules_docker is looking for maintainers here ; Does this mean it doesn't use it that much internally? If so, how do they go about using other services e.g docker-compose for running external services e.g database?
-
Scout APM
Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.
-
Project mention: Turborepo 1.2: High-performance build system for monorepos | news.ycombinator.com | 2022-04-08
> Is Bazel designed in a way that make it impossible to do JS monorepos well?
Not impossible, but you really need to go all in with it and follow its conventions and practices. See this for the main docs: https://github.com/bazelbuild/rules_nodejs
One thing in particular that doesn't work well in the bazel world is doing your own stuff outside its BUILD.bazel files. If you're used to just npm install and jam some code in your package.json scripts... that doesn't usually work in the bazel world. If you have a lot of logic or tools in your build you'll likely need to go all in and make bazel starlark rules or macros that recreate that logic. Nothing is impossible, but expect to spend time getting up to speed and getting things working the bazel way.
-
-
rules_foreign_cc
Build rules for interfacing with "foreign" (non-Bazel) build systems (CMake, configure-make, GNU Make, boost, ninja)
-
Other than that, the performance of both for builds should be determined exactly by the organization of code into separate crates and the rustc invocations. Bazel generally encourages smaller crates, but that's very subtle. There is at least 1 case I can think of where rustc is overfit to cargo, in a way that is not easily replicable by bazel, which is the metadata/rlib pipelining https://github.com/bazelbuild/rules_rust/issues/228
-
You might look at https://github.com/grailbio/bazel-compilation-database
-
SonarLint
Deliver Cleaner and Safer Code - Right in Your IDE of Choice!. SonarLint is a free and open source IDE extension that identifies and catches bugs and vulnerabilities as you code, directly in the IDE. Install from your favorite IDE marketplace today.
-
I have personally run converted build systems to Bazel, and use it for personal projects as well.
Bazel 1.0 was released in October 2019. If you were using it "a few years ago", I'm guessing you were using a pre-1.0 version. There's not some cutoff where Bazel magically got easy to use, and I still wouldn't describe it as "easy", but the problem it solves is hard to solve well, and the community support for Bazel has gotten a lot better over the past years.
https://github.com/bazelbuild/rules_python
The difficulty and complexity of using Bazel is highly variable. I've seen some projects where using Bazel is just super simple and easy, and some projects where using Bazel required a massive effort (custom toolchains and the like).
-
-
-
Project mention: Updated version of Google's Haskell 101/102 training is now available on GitHub | reddit.com/r/haskell | 2021-12-21
We use Tweag's rules_bazel. Perhaps you should be in touch with them instead of the original Bazel team (:
-
Project mention: Lightweight build alternatives to Gradle / Maven | reddit.com/r/Kotlin | 2021-12-03
-
That seemed shocking, but it doesn’t appear to be true? https://github.com/bazelbuild/rules_swift/issues/536#issueco...
-
I'm a fan of Tweag's rules_nixpkgs for bazel: https://github.com/tweag/rules_nixpkgs
-
-
Project mention: “You don't need this overengineered goo for your project.” | news.ycombinator.com | 2021-09-07
> “You don't need this overengineered goo for your project.”
k8s is probably a great excuse to think how to compose your infrastructure and software in a declarative way - I'm still fascinated by https://demo.kubevious.io/ - It just made "click" when playing with that demo - it's not goo it's a different operating system and a different mindset.
You can do 80% with docker-compose / swarm for small projects but:
If you read HN you are in a huge bubble - gruelsome patched tomcat7 apps on Java8 with 20 properties/ini/xml config files are still popular - hosting things in docker or doing ci/cd is still not mainstream. At least in Europe in the public sector stuff where I was involved.
Sure you can mock it - but the declarative approach is powerful - if you can pull it off to have it across all your infrastructure and code with ci/cd and tests you are fast.
This alone correctly implemented https://github.com/adobe/rules_gitops solves so many problems I can't count the useless meetings we had over any of these bullet points, bazel alone would have solved most major pain points in that project. Just by beeing explizit and declarative.
Don't believe the hype but it's a powerful weapon.
-
bazel-linting-system
🌿💚 Experimental system for registering, configuring, and invoking source-code linters in Bazel.
-
-
Woah! I just stumbled onto this: https://github.com/bazelembedded/bazel-embedded.
-
-
Project mention: Bazel 5.0 LTS with the new external dependency subsystem "Bzlmod" | reddit.com/r/programming | 2022-01-20
Agree IDE support isn't great for Bazel + python. We've reached a happy (for us) median by using Bazel to build a virtualenv, and using that virtualenv to power normal python tools. All of the packages in the env are just symlinked bazep deps. See rules_pyvenv.
Starlark Bazel related posts
Index
What are some of the best open-source Bazel projects in Starlark? This list will help you:
Project | Stars | |
---|---|---|
1 | distroless | 12,750 |
2 | rules_docker | 893 |
3 | rules_nodejs | 626 |
4 | examples | 562 |
5 | rules_foreign_cc | 509 |
6 | rules_rust | 369 |
7 | bazel-compilation-database | 344 |
8 | rules_python | 340 |
9 | rules_scala | 309 |
10 | bazel-skylib | 232 |
11 | bazel-coverage-report-renderer | 227 |
12 | rules_jvm_external | 226 |
13 | rules_swift | 215 |
14 | rules_nixpkgs | 141 |
15 | bazel-toolchain | 138 |
16 | rules_gitops | 97 |
17 | bazel-linting-system | 91 |
18 | rules_scala | 62 |
19 | bazel-embedded | 58 |
20 | rules_cc_module | 26 |
21 | rules_pyvenv | 6 |
22 | bazel_aws_credentials | 0 |
Are you hiring? Post a new remote job listing for free.