gRPC diff tool — detect every change, automatically
What the diff engine detects#
Breaking change types#
Field removed from a message · Field number (tag) changed · Field type changed · Field renamed (same number) · Field label changed to required (proto2) / cardinality change · Enum value removed · RPC method removed · RPC request or response type changed · Service removed
Non-breaking changes#
New optional field with new number · New RPC method added · New enum value added · New message or service added · Description updated
Why automated gRPC/Protobuf diffing matters#
Manually comparing two versions of a Protobuf schema is tedious and highly error-prone. As gRPC APIs evolve, their schemas grow complex, with intricate relationships between messages, fields, and services. Changing a field number or type is a significant breaking change, but it might appear as a minor, one-word alteration in a text file — a purpose-built diff tool parses the schema, resolves all references, and understands the hierarchical structure of the contract.
How CodeRifts performs the diff#
The engine parses both the old and new gRPC/Protobuf schemas, creating a complete, canonical representation of each API version. It performs a semantic comparison of the two structures, categorizing every detected change — from a removed field to a modified RPC method — by severity: breaking, non-breaking, or deprecation. Each change gets a risk score based on its type and potential impact on consumers.
Three ways to diff#
- In-browser — Upload two schemas to
app.coderifts.com/try, no signup required. - On every PR — Install the GitHub App and CodeRifts automatically diffs your gRPC/Protobuf schemas on every pull request. Zero config.
- Via API or CLI — Use the REST API or CLI to integrate diff into any CI/CD pipeline, pre-commit hook, or custom workflow.
See also: AsyncAPI diff, OpenAPI breaking changes.