Skip to main content

gRPC Proto Validator

Paste your .proto file and catch mistakes before code generation. Validates syntax declarations, field numbering, naming conventions, enum rules, and proto3 compatibility. Nothing is sent to any server — runs entirely in your browser.

✓ Field number validation ✓ Naming conventions ✓ Proto3 rules

Frequently Asked Questions

What does this proto validator check?▼

It checks for: missing syntax declaration, missing package declaration, reserved field numbers (19000–19999 and 0), duplicate field numbers within a message, duplicate field names, field naming convention (snake_case), message naming convention (PascalCase), enum value naming (SCREAMING_SNAKE_CASE), enum first value must be 0 in proto3, missing language-specific options, and services without documentation comments.

Why must the first enum value be 0 in proto3?▼

In proto3, the default value for enum fields is always the first defined value with number 0. This is required so that unset fields have a predictable zero value. By convention, name this entry with a suffix like _UNSPECIFIED or _UNKNOWN (e.g. STATUS_UNSPECIFIED = 0) to make it clear that 0 means 'not set'.

Why are field numbers 19000–19999 reserved?▼

The Protobuf library itself uses field numbers 19000–19999 for internal purposes. If your message uses these numbers, it will conflict with the runtime and cause unpredictable behavior. Always use field numbers outside this range.

What is the Proto3 naming convention?▼

Field names: snake_case (e.g. user_id, created_at). Message names: PascalCase (e.g. UserRequest, CreateUserResponse). Service names: PascalCase (e.g. UserService). RPC names: PascalCase (e.g. GetUser, ListUsers). Enum type names: PascalCase. Enum value names: SCREAMING_SNAKE_CASE with the enum type prefix (e.g. STATUS_ACTIVE, STATUS_INACTIVE).

What is the difference between proto2 and proto3?▼

Proto3 removes required/optional field modifiers (all fields are optional), uses simpler default values (zero/empty for all types), requires the first enum value to be 0, adds better JSON mapping support, and drops extensions in favor of 'Any'. Proto3 is recommended for new services. Proto2 is still supported but considered legacy.

Does this tool send my .proto file to a server?▼

No. All validation runs entirely in your browser using JavaScript. Your .proto file — which defines your API contract and data structures — never leaves your machine.

Share this tool: X / Twitter LinkedIn
✓ 60,000+ developers use DevPlaybook ★★★★★ 4.8 / 5 on Gumroad ✓ MIT licensed · Instant download ✓ No login required

Related Products

on Gumroad

You Might Also Need

More Free Tools

Enjoying this tool? Get more like it.

Weekly developer tool guides, productivity playbooks & AI tricks. Free. No spam.

DevPlaybook Pro 7 days free

Unlock AI-Powered Dev Tools

  • ⚡ AI Code Review, Doc Generator & SQL Builder
  • ⚡ All premium templates & early access
  • ⚡ Member discounts on Gumroad products
Start Free Trial →

$9/mo after trial · Cancel anytime

Want the full toolkit?

Get DevPlaybook Pro

Every template, guide, boilerplate, and automation script in one bundle. 13 premium products — grab them all at once and save big.

$79
$241 separately Save $162 (67% off)
Get DevPlaybook Pro — $79 →

MIT licensed · Instant download · No subscription

See what's included → Browse all deals →