# Protobuf Rules for [Bazel](https://bazel.build)

* Postsubmit [![Build status](https://badge.buildkite.com/26d40f574d6f6026928bc271780782e5f168fe7e3595ea6d79.svg)](https://buildkite.com/bazel/rules-proto)

This repository is deprecated.

The proto library implementation `proto_library` and rules for other languages like Java, Python, C++ are 
in [protobuf repository](http://github.com/google/protobuf). 

## Roadmap

As of May 2024, we decided to move the implementation of the rules together with proto compiler into protobuf repository.

As such this repository is deprecated and serves only as a helper in the migration.

* Slack channel `#proto` on [slack.bazel.build](https://slack.bazel.build)
