Starlark implementation of proto_library and related "base layer" rules in Bazel

Clone this repo:
  1. f9b0b88 feat: introduce toolchain helper (#194) by Sahin Yort · 3 months ago main 6.0.0-rc1
  2. 7188888 chore: add config for Publish to BCR app (#193) by Alex Eagle · 4 months ago
  3. 4e32e70 Update release_prep.sh (#192) by Alex Eagle · 4 months ago
  4. c911daa chore: add missing file needed by release automation (#191) by Alex Eagle · 4 months ago 6.0.0-rc0
  5. 3a38296 fix: executable bit for release shell script (#190) by Alex Eagle · 4 months ago

Protobuf Rules for Bazel

  • Postsubmit Build status

This repository contains a Starlark implementation of proto_library and related “base layer” rules in Bazel. It does not provide rules for any specific languages. These are typically expected to be provided in the ruleset for the language.

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.

Roadmap

As of September 2023, this repo is mostly empty and contains stubs for proto_library, ProtoInfo and other proto toolchain support rules.

This will change soon, around the time Bazel 7 is released (in Oct/Nov 2023), because the stubs will be replaced with actual implementations. We plan to remove the native implementations in Bazel 8, at which point rules_proto will be the only way to build Protobuf rules.

As such it's recommended to use this repository now, so that the removal of implementations from Bazel 8 does not cause you problems.

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: