Create proto_toolchain rule and macro

The proto_toolchain rule serves to define what protoc is used and to generate descriptor sets by proto_library.

This is a stripped down version of proto_lang_toolchain. It's not possible to set plugins or runtime libraries on it.

Steps in migration:
- this and other changes to proto_lang_toolchain
- release rules_proto, rules_java, rules_cc, rules_python
- use new version and define toolchains in protobuf repo

Issue: https://github.com/bazelbuild/rules_proto/issues/179
PiperOrigin-RevId: 566390506
6 files changed
tree: 1e79d87d68e1e04e222a629eb3c898f5a6fcf26e
  1. .bazelci/
  2. .bcr/
  3. proto/
  4. tests/
  5. tools/
  6. .bazelrc
  7. .gitignore
  8. AUTHORS
  9. CODEOWNERS
  10. CONTRIBUTING.md
  11. LICENSE
  12. MODULE.bazel
  13. README.md
  14. WORKSPACE
  15. WORKSPACE.bzlmod
README.md

Protobuf Rules for Bazel

  • Postsubmit Build status

This repository contains Starlark implementation of Protobuf rules in Bazel.

For a high-level overview of using Protocol Buffers and gRPC with Bazel, see https://bazel-contrib.github.io/SIG-rules-authors/proto-grpc.html.

For the list of Proto rules, see the Bazel documentation.

Getting Started

To get started with rules_proto, add the WORKSPACE file snippet from the latest release.

Then, in your BUILD files, import and use the rules:

load("@rules_proto//proto:defs.bzl", "proto_library")
proto_library(
    ...
)

If you're migrating from the native proto rules to rules_proto, you can use the following buildifier command to automate the changes to your BUILD and .bzl files:

buildifier --lint=fix --warnings=native-proto <path/to/BUILD>

Contributing

Bazel and rules_proto are the work of many contributors. We appreciate your help!

To contribute, please read the contribution guidelines: CONTRIBUTING.md.

Note that the rules_proto use the GitHub issue tracker for bug reports and feature requests only.

For asking questions see: