Skip to content

Protobuf to CSV Converter

Convert a Protocol Buffer (.proto) schema file into a flat CSV table of every message, field, number, and type - a quick way to document or spreadsheet your schema

Category: data
Use Case: Schema Documentation, API Field Reference, Spreadsheet Review
Privacy: 100% browser-based

Conversion Options

Recommended Settings

Best Practices

  • Use this tool to generate a spreadsheet-friendly reference for reviewing large .proto schemas
  • Nested messages appear with a dotted path (e.g., User.Address) so their origin stays clear
  • Keep your .proto files as the source of truth - the CSV is a documentation snapshot, not a schema format
  • Re-run the conversion whenever the schema changes to keep the reference CSV up to date

Conversion Tips

  • This tool parses .proto schema files, not binary protobuf-encoded data
  • Each row represents one field, with its message path, field number, type, and label
  • Enum values are included as rows by default - disable this if you only want message fields
  • Choose a semicolon or tab delimiter if your field names or options might contain commas

Most Popular

Most users keep the header row and enum values enabled with a comma delimiter for spreadsheet import

When to Use This Tool

Schema Documentation

Generate a flat, readable reference table of every message and field in a .proto schema for sharing with teammates who prefer spreadsheets over reading raw proto files.

API Field Review

Review field numbers, types, and labels across a large schema at a glance, making it easy to spot gaps, duplicate field numbers, or naming inconsistencies.

Schema Migration Planning

Export a schema's structure to CSV to compare against another version, plan field deprecations, or track changes during a schema migration.

Spreadsheet-Based Auditing

Import the CSV into Excel or Google Sheets to filter, sort, and annotate fields during a schema audit or design review meeting.

How It Works

1

Paste your .proto file content into the input field

2

Configure conversion options (delimiter, header row, enum values)

3

Click Convert to CSV to process

4

A custom parser extracts every message, nested message, field, and enum definition

5

Each field is flattened into one CSV row, with its message path, field number, type, and label

6

Download or copy the resulting CSV for spreadsheets or documentation

100% Private

Files never leave your device. All processing happens locally in your browser.

Lightning Fast

Powered by Custom Parser for optimal performance on modern browsers.

Secure

No data collection, no tracking, no sign-up required.

Frequently Asked Questions

What Protobuf syntax is supported?

This tool supports both proto2 and proto3 syntax. It parses message definitions, field types (string, int32, bool, etc.), field labels (optional, required, repeated), nested messages, and enum definitions. Comments are automatically ignored during parsing.

Can I convert binary protobuf data to CSV?

No, this tool converts .proto schema files (text format) into a CSV table describing the schema's fields. For decoding actual binary protobuf-encoded messages, use the Protobuf Decoder tool instead.

How are nested messages represented in the CSV?

Nested message fields get a dotted 'Message' path showing where they came from, like User.Address. This keeps each field's origin clear even when flattened into a single table.

What do the CSV columns mean?

Message is the (possibly nested) message name the field belongs to, Field is the field's name, Number is its field number in the wire format, Type is its declared protobuf type, Label is optional/required/repeated if specified, and Options captures any bracketed field options from the schema.

Why include enum values as separate rows?

Enums define named integer constants, not message fields, but seeing their values alongside message fields gives a complete picture of a schema in one CSV. Disable 'Include enum values as rows' if you only want message field definitions.

Is my schema data secure?

Yes! All conversion happens entirely in your browser using JavaScript. Your .proto schema is never sent to any server or stored anywhere.