buck2
rules_jvm
Our great sponsors
buck2 | rules_jvm | |
---|---|---|
31 | 2 | |
3,287 | 39 | |
2.3% | - | |
10.0 | 8.0 | |
5 days ago | 13 days ago | |
Rust | Java | |
Apache License 2.0 | 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.
buck2
-
Tech Debt: My Rust Library Is Now a CDO
https://buck2.build/ https://github.com/facebook/buck2
Rust support is also rather good ;) https://github.com/facebookincubator/reindeer
-
Things I learned while building projects with NX
Buck 2 by Facebook
-
Declarative Gradle is a cool thing I am afraid of: Maven strikes back
NOTE: I won’t mention SBT and Leiningen here because, with all due respect, they are niche build tools. I also won’t discuss Kobalt for the same reason (besides, it’s no longer actively maintained). Additionally, I won’t touch upon Bazel and Buck in this context, mainly because I’m not very familiar with them. If you have insights or comments about these tools, please feel free to share them in the comments 👇
-
Reason to use other Build Tool than Make?
There's a new build system which works on similar ideas to buck: https://buck2.build/
-
Hello r/Rust! We are Meta Engineers who created the Open Source Buck2 Build System! Ask us anything! [Mod approved]
I don't think all these pieces are open source yet, but https://github.com/facebook/buck2/blob/main/prelude/rust/rust-analyzer/resolve_deps.bxl is a snippet that is used to drive Rust Analyzer
- [Buck2] Consider WASM Instead of Starlark
- Buck2
-
Buck2: Our open source build system
We have a small example project that demonstrates what that would look like with buck2: https://github.com/facebook/buck2/tree/main/examples/bootstrap
- Buck2 from Facebook
-
Build faster with Buck2: Our open source build system
There are a few references to NixOS on the code/issues.[0] I wonder what Meta's use case is for NixOS.
[0] https://github.com/facebook/buck2/search?q=nixos&type=issues
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?
turbo - Incremental bundler and build system optimized for JavaScript and TypeScript, written in Rust – including Turbopack and Turborepo.
opentelemetry-cpp - The OpenTelemetry C++ Client
Bazel - a fast, scalable, multi-language and extensible build system
bazel - Correct, reproducible, and fast builds for everyone.
HHVM - A virtual machine for executing programs written in Hack.
librunecoral
Vcpkg - C++ Library Manager for Windows, Linux, and MacOS
depot - @ghuntley's personal monorepo [Moved to: https://github.com/ghuntley/ghuntley]
rfcs - RFC process for Bytecode Alliance projects
bazel-example-rust - An example repository demonstrating Bazel rust_binary and rust_library build targets.
PyOxidizer - A modern Python application packaging and distribution tool
magma - Platform for building access networks and modular network services