buildtools
rules_proto
Our great sponsors
buildtools | rules_proto | |
---|---|---|
1 | 1 | |
972 | 264 | |
1.5% | 1.1% | |
7.4 | 7.3 | |
7 days ago | 19 days ago | |
Go | Go | |
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.
buildtools
-
Surprise change of SHA
My code uses 4.2.5. https://github.com/bazelbuild/buildtools/releases/tag/4.2.5
rules_proto
-
Buf raises $93M to deprecate REST/JSON
`proto_library` for building the `.bin` file from protos works great. Generating stubs/messages for "all" languages does not. Each language does not want to implement gRPC rules, the gRPC team does not want to implement rules for each language. Sort of a deadlock situation. For example:
- C++: https://github.com/grpc/grpc/blob/master/bazel/cc_grpc_libra...
- Python: https://github.com/grpc/grpc/blob/master/bazel/python_rules....
- ObjC: https://github.com/grpc/grpc/blob/master/bazel/objc_grpc_lib...
- Java: https://github.com/grpc/grpc-java/blob/master/java_grpc_libr...
- Go (different semantics than all of the other): https://github.com/bazelbuild/rules_go/blob/master/proto/def...
But there's also no real cohesion within the community. The biggest effort to date has been in https://github.com/stackb/rules_proto which integrates with gazelle.
tl;dr: Low alignment results in diverging implementations that are complicated to understand for newcomers. Buff's approach is much more appealing as it's a "this is the one way to do the right thing" and having it just work by detecting `proto_library` and doing all of the linting/registry stuff automagically in CI would be fantastic.
What are some alternatives?
bazel-watcher - Tools for building Bazel targets when source files change.
gRPC - The Java gRPC implementation. HTTP/2 based RPC
bazel-remote - A remote cache for Bazel
schematic - type-safe JSON spec and validation tool
please - High-performance extensible build system for reproducible multi-language builds.
gRPC - The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)
rules_go - Go rules for Bazel
rules_proto_grpc - Bazel rules for building Protobuf and gRPC code and libraries from proto_library targets
buildbuddy - BuildBuddy is an open source Bazel build event viewer, result store, remote cache, and remote build execution platform.
dbx_build_tools - Dropbox's Bazel rules and tools