Protobuf Rules for Bazel

  • Postsubmit Build status
  • Postsubmit + Current Bazel Incompatible Flags Build status

This repository contains Starlark implementation of Protobuf rules in Bazel.

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

Getting Started

To get started with rules_proto, add the following to your WORKSPACE file:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

    name = "rules_proto",
    sha256 = "602e7161d9195e50246177e7c55b2f39950a9cf7366f74ed5f22fd45750cd208",
    strip_prefix = "rules_proto-97d8af4dc474595af3900dd85cb3a29ad28cc313",
    urls = [
load("@rules_proto//proto:repositories.bzl", "rules_proto_dependencies", "rules_proto_toolchains")

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

load("@rules_proto//proto:defs.bzl", "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>


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

To contribute, please read the contribution guidelines:

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

For asking questions see: