Protobuf .proto Field Number Gap/Reservation Checker
CodeParse a .proto file's message definitions and flag reused field numbers, gaps in the field-number sequence that aren't covered by a reserved or extensions statement, and field numbers outside the valid range, protobuf's own recommended practice for safe wire-format evolution.
Paste a .proto file and it checks each message's field numbers for three common mistakes: a number reused by two fields, a skipped number that isn't covered by a reserved or extensions statement (the thing that silently breaks wire compatibility when a field gets deleted and its number later gets reassigned), and a number outside protobuf's valid range of 1 to 536,870,911 or inside the 19000-19999 block reserved for the implementation. Nested messages get their own independent field-number space, and oneof fields count toward their enclosing message, matching how protobuf itself scopes numbers. It's a brace-depth parser rather than a full protobuf grammar, so it doesn't validate enum values or extend blocks.
How to use Protobuf .proto Field Number Gap/Reservation Checker
- 1.Paste a .proto file's contents into the editor.
- 2.Review each message's field list and any flagged findings, each with a rule name, the message it applies to, and a line number.
- 3.Add a reserved or extensions statement for any flagged gap before deleting or renumbering fields in a message that's already shipped.
Frequently asked questions
Use via API, SDK, or MCP
cURL# Free: 1,000 req/day · Pro: 10,000 req/day
curl -X POST https://api.utilix.tech/v1/tools/proto-field-number-checker \
-H "Authorization: Bearer utx_live_..." \
-H "Content-Type: application/json" \
-d '{"content":"message Person {\n string name = 1;\n int32 age = 5;\n}"}'Get an API key from your dashboard · Full API docs →