<h1>Protobuf and gRPC rules for <ahref="https://bazel.build">Bazel</a></h1>
</div>
<divalign="center">
<ahref="https://bazel.build">Bazel</a> rules for building <ahref="https://developers.google.com/protocol-buffers">Protobuf</a> and <ahref="https://grpc.io/">gRPC</a> code and libraries from <ahref="https://docs.bazel.build/versions/master/be/protocol-buffer.html#proto_library">proto_library</a> targets<br><br>
| [C](https://rules-proto-grpc.com/en/latest/lang/c.html) | [c_proto_library](https://rules-proto-grpc.com/en/latest/lang/c.html#c-proto-library) | Generates a C protobuf library using ``cc_library``, with dependencies linked ([example](/example/c/c_proto_library)) |
| [C++](https://rules-proto-grpc.com/en/latest/lang/cpp.html) | [cpp_grpc_compile](https://rules-proto-grpc.com/en/latest/lang/cpp.html#cpp-grpc-compile) | Generates C++ protobuf and gRPC ``.h`` & ``.cc`` files ([example](/example/cpp/cpp_grpc_compile)) |
| [C++](https://rules-proto-grpc.com/en/latest/lang/cpp.html) | [cpp_proto_library](https://rules-proto-grpc.com/en/latest/lang/cpp.html#cpp-proto-library) | Generates a C++ protobuf library using ``cc_library``, with dependencies linked ([example](/example/cpp/cpp_proto_library)) |
| [C++](https://rules-proto-grpc.com/en/latest/lang/cpp.html) | [cpp_grpc_library](https://rules-proto-grpc.com/en/latest/lang/cpp.html#cpp-grpc-library) | Generates a C++ protobuf and gRPC library using ``cc_library``, with dependencies linked ([example](/example/cpp/cpp_grpc_library)) |
| [C#](https://rules-proto-grpc.com/en/latest/lang/csharp.html) | [csharp_proto_library](https://rules-proto-grpc.com/en/latest/lang/csharp.html#csharp-proto-library) | Generates a C# protobuf library using ``csharp_library`` from ``rules_dotnet``. Note that the library name must end in ``.dll`` ([example](/example/csharp/csharp_proto_library)) |
| [C#](https://rules-proto-grpc.com/en/latest/lang/csharp.html) | [csharp_grpc_library](https://rules-proto-grpc.com/en/latest/lang/csharp.html#csharp-grpc-library) | Generates a C# protobuf and gRPC library using ``csharp_library`` from ``rules_dotnet``. Note that the library name must end in ``.dll`` ([example](/example/csharp/csharp_grpc_library)) |
| [D](https://rules-proto-grpc.com/en/latest/lang/d.html) | [d_proto_library](https://rules-proto-grpc.com/en/latest/lang/d.html#d-proto-library) | Generates a D protobuf library using ``d_library`` from ``rules_d`` ([example](/example/d/d_proto_library)) |
| [F#](https://rules-proto-grpc.com/en/latest/lang/fsharp.html) | [fsharp_proto_library](https://rules-proto-grpc.com/en/latest/lang/fsharp.html#fsharp-proto-library) | Generates a F# protobuf library using ``fsharp_library`` from ``rules_dotnet``. Note that the library name must end in ``.dll`` ([example](/example/fsharp/fsharp_proto_library)) |
| [F#](https://rules-proto-grpc.com/en/latest/lang/fsharp.html) | [fsharp_grpc_library](https://rules-proto-grpc.com/en/latest/lang/fsharp.html#fsharp-grpc-library) | Generates a F# protobuf and gRPC library using ``fsharp_library`` from ``rules_dotnet``. Note that the library name must end in ``.dll`` ([example](/example/fsharp/fsharp_grpc_library)) |
| [Go](https://rules-proto-grpc.com/en/latest/lang/go.html) | [go_proto_library](https://rules-proto-grpc.com/en/latest/lang/go.html#go-proto-library) | Generates a Go protobuf library using ``go_library`` from ``rules_go`` ([example](/example/go/go_proto_library)) |
| [Go](https://rules-proto-grpc.com/en/latest/lang/go.html) | [go_grpc_library](https://rules-proto-grpc.com/en/latest/lang/go.html#go-grpc-library) | Generates a Go protobuf and gRPC library using ``go_library`` from ``rules_go`` ([example](/example/go/go_grpc_library)) |
| [Go](https://rules-proto-grpc.com/en/latest/lang/go.html) | [go_validate_library](https://rules-proto-grpc.com/en/latest/lang/go.html#go-validate-library) | Generates a Go protobuf and gRPC validation library using ``go_library`` from ``rules_go`` ([example](/example/go/go_validate_library)) |
| [Python](https://rules-proto-grpc.com/en/latest/lang/python.html) | [python_proto_library](https://rules-proto-grpc.com/en/latest/lang/python.html#python-proto-library) | Generates a Python protobuf library using ``py_library`` from ``rules_python`` ([example](/example/python/python_proto_library)) |
| [Python](https://rules-proto-grpc.com/en/latest/lang/python.html) | [python_grpc_library](https://rules-proto-grpc.com/en/latest/lang/python.html#python-grpc-library) | Generates a Python protobuf and gRPC library using ``py_library`` from ``rules_python`` ([example](/example/python/python_grpc_library)) |
| [Python](https://rules-proto-grpc.com/en/latest/lang/python.html) | [python_grpclib_library](https://rules-proto-grpc.com/en/latest/lang/python.html#python-grpclib-library) | Generates a Python protobuf and grpclib library using ``py_library`` from ``rules_python`` (supports Python 3 only) ([example](/example/python/python_grpclib_library)) |
| [Ruby](https://rules-proto-grpc.com/en/latest/lang/ruby.html) | [ruby_proto_library](https://rules-proto-grpc.com/en/latest/lang/ruby.html#ruby-proto-library) | Generates a Ruby protobuf library using ``ruby_library`` from ``rules_ruby`` ([example](/example/ruby/ruby_proto_library)) |
| [Ruby](https://rules-proto-grpc.com/en/latest/lang/ruby.html) | [ruby_grpc_library](https://rules-proto-grpc.com/en/latest/lang/ruby.html#ruby-grpc-library) | Generates a Ruby protobuf and gRPC library using ``ruby_library`` from ``rules_ruby`` ([example](/example/ruby/ruby_grpc_library)) |
| [Rust](https://rules-proto-grpc.com/en/latest/lang/rust.html) | [rust_tonic_grpc_compile](https://rules-proto-grpc.com/en/latest/lang/rust.html#rust-tonic-grpc-compile) | Generates Rust protobuf and gRPC ``.rs`` files using prost and tonic ([example](/example/rust/rust_tonic_grpc_compile)) |
| [Rust](https://rules-proto-grpc.com/en/latest/lang/rust.html) | [rust_prost_proto_library](https://rules-proto-grpc.com/en/latest/lang/rust.html#rust-prost-proto-library) | Generates a Rust prost protobuf library using ``rust_library`` from ``rules_rust`` ([example](/example/rust/rust_prost_proto_library)) |
| [Rust](https://rules-proto-grpc.com/en/latest/lang/rust.html) | [rust_tonic_grpc_library](https://rules-proto-grpc.com/en/latest/lang/rust.html#rust-tonic-grpc-library) | Generates a Rust prost protobuf and tonic gRPC library using ``rust_library`` from ``rules_rust`` ([example](/example/rust/rust_tonic_grpc_library)) |
| [Scala](https://rules-proto-grpc.com/en/latest/lang/scala.html) | [scala_proto_library](https://rules-proto-grpc.com/en/latest/lang/scala.html#scala-proto-library) | Generates a Scala protobuf library using ``scala_library`` from ``rules_scala`` ([example](/example/scala/scala_proto_library)) |
| [Scala](https://rules-proto-grpc.com/en/latest/lang/scala.html) | [scala_grpc_library](https://rules-proto-grpc.com/en/latest/lang/scala.html#scala-grpc-library) | Generates a Scala protobuf and gRPC library using ``scala_library`` from ``rules_scala`` ([example](/example/scala/scala_grpc_library)) |
| [Swift](https://rules-proto-grpc.com/en/latest/lang/swift.html) | [swift_grpc_compile](https://rules-proto-grpc.com/en/latest/lang/swift.html#swift-grpc-compile) | Generates Swift protobuf and gRPC ``.swift`` files ([example](/example/swift/swift_grpc_compile)) |
| [Swift](https://rules-proto-grpc.com/en/latest/lang/swift.html) | [swift_proto_library](https://rules-proto-grpc.com/en/latest/lang/swift.html#swift-proto-library) | Generates a Swift protobuf library using ``swift_library`` from ``rules_swift`` ([example](/example/swift/swift_proto_library)) |
| [Swift](https://rules-proto-grpc.com/en/latest/lang/swift.html) | [swift_grpc_library](https://rules-proto-grpc.com/en/latest/lang/swift.html#swift-grpc-library) | Generates a Swift protobuf and gRPC library using ``swift_library`` from ``rules_swift`` ([example](/example/swift/swift_grpc_library)) |