Protobuf and gRPC rules for Bazel
If you or your company find these rules useful, please consider supporting the building and maintenance of these rules ☕
Important
The master
branch now contains the Bzlmod-only update of the rules that'll be released in
version 5.0.0. If you need to see the WORKSPACE based rules used in version 4.x.x, please see
the legacy
branch. For
tracking the status of language support with the Bzlmod rules, please see
#299
Version 4.6.0 has been released, which contains a few bug fixes for Bazel 7 support. Note that this is likely to be the last WORKSPACE supporting release of rules_proto_grpc, as new Bzlmod supporting rules are introduced in the next major version
Version 4.5.0 has been released, which contains a number of version updates, bug fixes and usability improvements over 4.4.0. Additionally, the Rust rules contain a major change of underlying gRPC and Protobuf library; the rules now use Tonic and Prost respectively
Full documentation for the current and previous versions can be found here
Language | Rule | Description |
---|---|---|
Buf | buf_proto_breaking_test | Checks .proto files for breaking changes (example) |
Buf | buf_proto_lint_test | Lints .proto files (example) |
C | c_proto_compile | Generates C protobuf .h & .c files (example) |
C | c_proto_library | Generates a C protobuf library using cc_library , with dependencies linked (example) |
C++ | cpp_proto_compile | Generates C++ protobuf .h & .cc files (example) |
C++ | cpp_grpc_compile | Generates C++ protobuf and gRPC .h & .cc files (example) |
C++ | cpp_proto_library | Generates a C++ protobuf library using cc_library , with dependencies linked (example) |
C++ | cpp_grpc_library | Generates a C++ protobuf and gRPC library using cc_library , with dependencies linked (example) |
Documentation | doc_docbook_compile | Generates DocBook .xml documentation file (example) |
Documentation | doc_html_compile | Generates .html documentation file (example) |
Documentation | doc_json_compile | Generates .json documentation file (example) |
Documentation | doc_markdown_compile | Generates Markdown .md documentation file (example) |
Documentation | doc_template_compile | Generates documentation file using Go template file (example) |
Go | go_proto_compile | Generates Go protobuf .go files (example) |
Go | go_grpc_compile | Generates Go protobuf and gRPC .go files (example) |
Go | go_proto_library | Generates a Go protobuf library using go_library from rules_go (example) |
Go | go_grpc_library | Generates a Go protobuf and gRPC library using go_library from rules_go (example) |
gRPC-Gateway | gateway_grpc_compile | Generates gRPC-Gateway .go files (example) |
gRPC-Gateway | gateway_openapiv2_compile | Generates gRPC-Gateway OpenAPI v2 .json files (example) |
gRPC-Gateway | gateway_grpc_library | Generates gRPC-Gateway library files (example) |
Java | java_proto_compile | Generates a Java protobuf srcjar file (example) |
Java | java_grpc_compile | Generates a Java protobuf and gRPC srcjar file (example) |
Java | java_proto_library | Generates a Java protobuf library using java_library (example) |
Java | java_grpc_library | Generates a Java protobuf and gRPC library using java_library (example) |
Objective-C | objc_proto_compile | Generates Objective-C protobuf .m & .h files (example) |
Objective-C | objc_grpc_compile | Generates Objective-C protobuf and gRPC .m & .h files (example) |
Objective-C | objc_proto_library | Generates an Objective-C protobuf library using objc_library (example) |
Objective-C | objc_grpc_library | Generates an Objective-C protobuf and gRPC library using objc_library (example) |
Python | python_proto_compile | Generates Python protobuf .py files (example) |
Python | python_grpc_compile | Generates Python protobuf and gRPC .py files (example) |
Python | python_grpclib_compile | Generates Python protobuf and grpclib .py files (supports Python 3 only) (example) |
Python | python_proto_library | Generates a Python protobuf library using py_library from rules_python (example) |
Python | python_grpc_library | Generates a Python protobuf and gRPC library using py_library from rules_python (example) |
Python | python_grpclib_library | Generates a Python protobuf and grpclib library using py_library from rules_python (supports Python 3 only) (example) |
This project is derived from stackb/rules_proto under the Apache 2.0 license and this project therefore maintains the terms of that license