librunecoral
rules_jvm
Our great sponsors
librunecoral | rules_jvm | |
---|---|---|
1 | 2 | |
5 | 39 | |
- | - | |
10.0 | 7.9 | |
almost 2 years ago | 6 days ago | |
Rust | Java | |
- | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
librunecoral
-
Scaling Rust Builds with Bazel
> "yeah this was written for a Google project, that other use case didn't apply to our project"
Not only is that a very narrow set of use cases (Read: they only deploy statically linked binaries on mostly unix-y environments), Even the fixes for those very basic use cases take for ever.
Eg. This 7 year old issue is still open: https://github.com/bazelbuild/bazel/issues/1920 . To be able to create a statically linked library, we had to use: https://github.com/hotg-ai/librunecoral/blob/master/runecora... . Had to use some weird hack to build shared libraries too. Overall, it was just annoying.
rules_jvm
-
Scaling Rust Builds with Bazel
It is super tedious but for some languages a tool called Gazelle can auto-generate these for you. I know Go works well and there is a Java plugin too [0]. There is definitely some level rust support because that is how external crates are handled.
0 - https://github.com/bazel-contrib/rules_jvm/tree/main/java/ga...
-
First Bazel project. WORKSPACE questions.
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "contrib_rules_jvm", sha256 = "59af045d288ad3e2d9000b1cddb1135f889d798830f7106a4792cc95427bcd99", strip_prefix = "rules_jvm-0.7.0", url = "https://github.com/bazel-contrib/rules_jvm/archive/refs/tags/v0.7.0.zip", ) # Fetches the contrib_rules_jvm dependencies. # If you want to have a different version of some dependency, # you should fetch it *before* calling this. load("@contrib_rules_jvm//:repositories.bzl", "contrib_rules_jvm_deps") contrib_rules_jvm_deps() # Now ensure that the downloaded deps are properly configured load("@contrib_rules_jvm//:setup.bzl", "contrib_rules_jvm_setup") contrib_rules_jvm_setup()
What are some alternatives?
bazel-example-rust - An example repository demonstrating Bazel rust_binary and rust_library build targets.
opentelemetry-cpp - The OpenTelemetry C++ Client
depot - @ghuntley's personal monorepo [Moved to: https://github.com/ghuntley/ghuntley]
bazel - Correct, reproducible, and fast builds for everyone.
bazel-ex-20230324
buck2 - Build system, successor to Buck
magma - Platform for building access networks and modular network services
envoy - Cloud-native high-performance edge/middle/service proxy