Data format

AVRO converter

An .avro file is an Avro Object Container File: rows of compactly encoded records with the writer's schema stored in the file header, so a reader never needs the schema out of band. That self-description is the format's whole point — the data and its definition travel together.

Private for supported formats — processed in your browser

Convert supported files

Runs on your device

Drop AVRO files here

Batch files can each use a different output. Nothing uploads for local conversions.

Working inputs include camera RAW, browser-local audio/video, PDF, CBZ/CBR comics, office documents, ebooks, markup, 3D models, structured text, images, and archives.

Where AVRO comes from

Doug Cutting created Avro in 2009 within the Hadoop project, to give it a serialization format with real schema evolution rather than generated code that had to be recompiled in lockstep. It became the default for Kafka pipelines through Confluent's Schema Registry and remains the standard row-oriented format in the Hadoop and streaming ecosystems, where Parquet took the columnar analytics role and Avro kept the ingestion and event-log role.

How AVRO works

  • The file starts with 'Obj' and a version byte, then a metadata map holding avro.schema (JSON) and avro.codec.
  • Data is split into blocks of (record count, byte length, payload, 16-byte sync marker); the sync marker lets a reader resynchronize at a block boundary, which is what makes an Avro file splittable across cluster nodes.
  • Integers and longs are zig-zag encoded as variable-length varints, so small values cost one byte and negative numbers do not cost ten.
  • Field names are stored once in the header, not per record, so the row encoding is close to the theoretical minimum.
  • Schema resolution matches reader and writer schemas by field name with defaults, which is how a consumer written today reads a file written last year.

When to use AVRO

  • Kafka event payloads and stream ingestion with a schema registry
  • Row-oriented landing data in a data lake before it is compacted to Parquet
  • Long-lived event logs where the schema will change but old files must stay readable
  • Extracting an event dump to JSON, CSV or a spreadsheet for inspection

Strengths and limitations

Strengths

  • The schema is inside the file, so data is never orphaned from its definition
  • Schema evolution is designed in, not bolted on
  • Splittable blocks make it efficient for distributed processing

Limitations

  • Row-oriented, so column scans read far more than they need compared with Parquet
  • Binary and not directly inspectable
  • Deflate and Snappy codecs are common in the wild and not every reader implements both

Compatibility

Official libraries cover Java, Python, C, C++, C#, Ruby, PHP and Rust, and Kafka, Spark, Hive, Flink and BigQuery all read Avro. Novus Convert decodes .avro locally from bounded null-codec and raw-deflate blocks using the writer schema embedded in the file, and writes JSON, CSV or XLSX. Files using Snappy or another codec are rejected rather than partially decoded.

The embedded writer schema, including field names, types and documentation strings, is read and reported; CSV and spreadsheet targets flatten it to a header row.