Protobuf to Apache Avro Converter

Convert Protocol Buffers proto3 messages, enums, maps, and oneof blocks into Apache Avro schema definitions in your browser.

At a glance

Protobuf to Apache Avro Converter transforms Protocol Buffers (Proto3) messages, enums, maps, and oneofs into valid Apache Avro (.avsc) JSON schemas. It maps Proto3 scalars, repeated fields to Avro arrays, enums to Avro symbol definitions, and sub-messages to nested records purely inside client-side memory.

100% Client-Side In-Browser Protocol Buffers to Apache Avro Transpiler

Compile Protocol Buffers (Proto3) messages, enums, maps, oneofs, and repeated fields directly into Apache Avro (.avsc) schema definitions with zero server uploads.

Pure In-Browser
Presets:
Valid Proto3 0 chars
Avro Schema Generation Options
.avsc JSON 0 chars
0 records
Avro Schema Topology:
Records 0
Enums 0
Fields 0
Oneofs/Unions 0

Why Use This Protobuf to Apache Avro Converter?

100% Client-Side Privacy: Your Protocol Buffers definitions never leave your browser or device.
Comprehensive Proto3 Parsing: Handles messages, primitive scalars, enums, repeated arrays, maps, and oneofs.
Standardized Avro Mappings: Compliant with Apache Avro 1.11 specifications for records, enums, arrays, and maps.
Union Translation: Converts Proto3 oneof variants directly into native Avro union schemas.
Documentation Retention: Preserves Proto docstrings and comments as Avro doc attributes.

How to Use Protobuf to Apache Avro Converter

1

Paste Proto3 Schema

Paste your Protocol Buffers (.proto) definition into the editor or select a built-in preset.

2

Configure Avro Options

Set a fallback Avro namespace and select your preferred JSON output indentation.

3

Copy or Export .avsc

Copy the generated Apache Avro JSON schema or download it directly as a .avsc file.

Protobuf to Avro example

Demonstrates converting a Proto3 User message with string, integer, and repeated array fields into an Apache Avro record schema.

Proto3 Schema (.proto) Source
syntax = "proto3";

message User {
  string id = 1;
  int32 age = 2;
  repeated string tags = 3;
}
Generated Avro Schema (.avsc) Processed
{
  "type": "record",
  "name": "User",
  "fields": [
    { "name": "id", "type": "string" },
    { "name": "age", "type": "int" },
    { "name": "tags", "type": { "type": "array", "items": "string" } }
  ],
  "namespace": "com.example"
}

Technical Specifications & Engine Details

Technical specifications and engine details for Protobuf to Apache Avro Converter
Specification Details
Supported Formats Text / Input → Rendered Result
Execution Mode 100% Client-Side In-Browser (client)
Browser Requirements Requires modern web browser with ECMAScript 6+ and standard DOM Web APIs.
Performance Constraints Client browser memory limit (typically 1–2 GB RAM); processing speed depends on client hardware.
Maintained by Pragyan Pahadi

100% Client-Side Privacy Guarantee

Your schema files remain strictly on your local device. Zero data is transmitted to external servers.

Frequently Asked Questions

How are Proto3 scalar types mapped to Avro?
int32 and sint32 map to int; int64 and sint64 map to long; float maps to float; double maps to double; string maps to string; bool maps to boolean; bytes maps to bytes.
How does the tool handle repeated and map fields?
Repeated fields are mapped to Avro array schemas ({ type: 'array', items: ... }) and map fields are mapped to Avro map schemas ({ type: 'map', values: ... }).
How are Proto3 oneof blocks translated?
Each oneof block is translated into an Avro union field containing the array of mapped types.
Is any Protobuf schema sent to a remote server?
No. The entire conversion runs client-side in your browser memory with zero network requests.

Methodology

This tool runs entirely in your browser. The example above shows a representative input and the result it produces.

Last updated .