Docker image with support for Protobuf, gRPC, and Connect code generation for multiple languages.
The image includes Buf to facilitate code generation, linting, and breaking changes detection.
Language | Protobuf | gRPC | Connect |
---|---|---|---|
Go | protoc-gen-go | protoc-gen-go-grpc | protoc-gen-connect-go |
Java | protoc | protoc-gen-java-grpc | NA |
C++ | protoc | protoc-gen-cpp-grpc | NA |
C# | protoc | protoc-gen-chsarp-grpc | NA |
Objective-C | protoc | protoc-gen-objc-grpc | NA |
JavaScript | protoc-gen-js, protoc-gen-es | protoc-gen-node-grpc | [Runtime] @connectrpc/connect |
TypeScript | protoc-gen-es | NA | [Runtime] @connectrpc/connect |
Python | protoc | protoc-gen-python-grpc | NA |
Ruby | protoc | protoc-gen-ruby-grpc | NA |
PHP | protoc | protoc-gen-php-grpc | NA |
Web | protoc-gen-es | protoc-gen-grpc-web | [Runtime] @connectrpc/connect |
Tool | Version |
---|---|
buf | 1.50.0 |
protoc | 29.3 |
protoc-gen-go | 1.36.5 |
protoc-gen-js | 3.21.4 |
protoplugin | 2.2.3 |
protoc-gen-es | 2.2.3 |
grpc | 1.70.1 |
protoc-gen-go-grpc | 1.5.1 |
grpc-java | 1.70.0 |
grpc-tools | 1.13.0 |
grpc-web | 1.5.0 |
protoc-gen-connect-go | 1.18.1 |
Check the sample repository here.
Since this image contains multiple tools there is no straightforward way to version it. For that reason versioning will be done based on the following rules:
- Major bump when any of the tools is updated to a new major version
- Minor bump when any of the tools is updated to a new minor version
- Patch bump when any of the tools is updated to a new patch version