Protobuf Compatibility Checker
Open Protobuf Compatibility Checker on Happytails.ai. This view has the same page content and links, with explicit tool capabilities. Read the processing notes before using a tool.
Tool capabilities
{
"id": "protobuf-compatibility-checker",
"category": "developer-tools",
"built": true,
"requirements": "Accepts two .proto files of up to 1,000,000 characters each, with at most 200,000 tokens, 2,000 messages and enums, 10,000 fields per message and 32 levels of nested messages. The comparison runs in your browser in a background worker. Downloads are a JSON report and a CSV list of findings.",
"implementation": {
"fields": [
{
"key": "next",
"label": "New schema",
"value": "",
"type": "textarea",
"maxLength": 1000000,
"help": "The changed .proto file. Paste the old version in the main input."
}
],
"registrationFamily": "api-contracts-schemas",
"codeDirection": "ltr",
"inputMaxLength": 1000000,
"inputErrorCode": "API_CONTRACTS_SCHEMAS_TOO_LONG_PROTOBUF_COMPATIBILITY_CHECKER",
"note": "Runs in your browser in a background worker. Accepts two .proto files of up to 1000000 characters each, without imports, editions or extensions.",
"experience": {
"automatic": false,
"single": false,
"inputMaxLength": 1000000,
"inputMode": "text",
"label": "Old .proto file",
"placeholder": "syntax = \"proto3\";\nmessage Order { string id = 1; }",
"help": "The version that existing data was written with. Put the changed file in New schema. Up to 1,000,000 characters. Review the settings before running.",
"helpParts": [
"The version that existing data was written with. Put the changed file in New schema.",
"Up to 1,000,000 characters.",
"Review the settings before running."
],
"action": null
},
"mode": "explicit",
"interactive": false
},
"execution": "Browser interface",
"api": null,
"browser_agent": {
"supported": true,
"name": "run_current_tool",
"discovery": "WebMCP on the human page in a supporting browser",
"verification": "See audit/API-AUDIT.md; availability is not verification"
}
}Page guide
Compare two versions of a .proto file and find the edits that break messages already written on the wire or as JSON. Removed numbers, type changes, renamed fields and enum changes are each explained.
How to use Protobuf Compatibility Checker
- Paste the old .proto file in the main box.
- Paste the new version in the New schema field.
- Run the check and review the findings, most severe first.
- Download the JSON report or the CSV list.
Useful next steps
Accepts two .proto files of up to 1,000,000 characters each, with at most 200,000 tokens, 2,000 messages and enums, 10,000 fields per message and 32 levels of nested messages. The comparison runs in your browser in a background worker. Downloads are a JSON report and a CSV list of findings.
Severities
Breaking means old and new programs can misread binary messages: a removed field whose number is not reserved, a number reused from a reserved range, a type with a different wire encoding, a change between singular and repeated, a removed message or enum, or a renumbered enum value. Breaking JSON means binary data still works but the JSON or text format changes, such as a renamed field or enum value. Warnings cover changes that work on the wire but can truncate or reinterpret values, such as int32 to int64, or moves into and out of a oneof.
How it compares
Messages and enums are matched by their name without the package, and fields by number, following the protobuf language guide rules for updating a message type. Messages and enums nested inside other messages are compared too.
What is not supported
The parser reads proto2 and proto3 files with messages, enums, oneof, maps, nested types, reserved numbers and names, and field options. Imports are listed but not resolved, so types from other files are compared by name only. Editions, groups and extensions are rejected. Services are skipped.