{ } Schemato

Protocol Buffers to Python dataclass Converter

Paste a Protocol Buffers sample, get production-ready Python dataclass code. Runs entirely in your browser.

Examples:

proto3 message with primitive fields

InputProtocol Buffers
OutputPython dataclass

About this converter

This free tool converts Protocol Buffers into Python dataclass. Protobuf .proto message definitions. Standard library dataclass for Python. The conversion runs entirely client-side: nothing is uploaded, nothing is logged. Useful when you want to skip writing types by hand for an API response, a database row, or a config payload.

Why convert Protocol Buffers to Python dataclass

  • Use stdlib dataclasses to model structured data without extra deps.
  • Get __init__ / __repr__ / __eq__ for free, in a few lines.
  • Migrate from dicts to typed objects without buying into a framework.

How to use

  1. Paste your Protocol Buffers on the left panel, or pick one of the sample tabs above.
  2. The converter infers field names, optionality, and types automatically.
  3. Copy the generated Python dataclass on the right and drop it straight into your codebase.

Common pitfalls

  • Inferred types only see the payload you pasted. Add nullable / optional flags for fields that can be missing.
  • Numeric types are inferred as integer or float based on the sample. Real APIs sometimes return both — widen to a number/float type when in doubt.
  • Empty arrays default to an `unknown` element type. Paste a non-empty sample to get a meaningful element type.

FAQ

Is this protocol buffers to python dataclass converter free?
Yes. It is fully free, no signup, and runs entirely in your browser. We do not store your input.
Does it work with nested objects and arrays?
Yes. Nested objects produce separate named types, and arrays infer the element type from the first non-null sample.
What about optional / nullable fields?
Fields whose value is null in the sample (or marked optional in JSON Schema / Prisma / GraphQL) are marked optional/nullable in the output. For real APIs, you may want to widen optionality manually after generation.
Can I generate Python Dataclass from multiple Protocol Buffers samples?
Today the tool processes a single sample. For more aggressive inference across multiple shapes, run the converter on the union/merge of your samples or open an issue.
Is the source code available?
Yes — the entire project is open source. See the GitHub link in the footer.

Related converters