Avro to CSV Converter

Drop an Avro Object Container File (.avro), the binary format used by Kafka, Hadoop, and many data pipelines, and this tool reads its embedded schema, decodes every record, and exports the result as a CSV file you can open in any spreadsheet. It understands the 'null' and 'deflate' block codecs and decodes records straight from the Avro binary encoding, including nested records, arrays, maps, unions, and enums. Everything happens locally in your browser; the file is never uploaded.

PrivateFreeWorks offline

Reviewed by Vincenzo Manto, Founder & Lead Developer · Last updated September 27, 2026

How it works

  1. 1

    Drop or select a .avro file (an Avro Object Container File).

  2. 2

    The tool reads the file's embedded schema and metadata, including the compression codec.

  3. 3

    Every data block is decompressed (if needed) and decoded record by record using the Avro binary spec.

  4. 4

    The decoded records appear as CSV, ready to copy or download.

Why convert Avro to CSV?

Avro is good for compact, schema-enforced, streaming-friendly storage, but it's a binary format that spreadsheets, BI tools, and most people can't read directly. Converting to CSV makes Avro-based data (from Kafka topics, Hadoop exports, or schema registries) usable by anyone.

How the binary decoder works

Rather than depending on a heavy npm package, this tool implements Avro's binary encoding rules directly: zigzag varints for ints and longs, IEEE754 floats and doubles, length-prefixed strings and bytes, and the blocked encoding used for arrays and maps. That keeps the tool small and fully client-side.

Frequently asked questions

What is an Avro Object Container File?

It's the standard .avro file format: a self-describing binary file that starts with a magic marker, embeds the full Avro schema used to write the data, and stores records in one or more compressed or uncompressed blocks. It's widely used by Kafka Connect, Hadoop, and Spark pipelines.

Which compression codecs are supported?

The 'null' codec (uncompressed) and 'deflate' are supported. Other codecs such as Snappy or Zstandard will show a clear "unsupported codec" error instead of silently producing garbage output.

What happens to nested records, arrays, or maps?

They're decoded correctly per the Avro spec, then JSON-stringified into a single CSV cell rather than being split across many columns. That keeps the CSV structure simple and predictable while preserving all the data.

Does this tool use an Avro library?

No, the binary decoder (varints, unions, blocked arrays/maps, records, enums, fixed types) is implemented from scratch following the public Avro specification, entirely in your browser.

Is my Avro file uploaded to a server?

No. The file is read and decoded entirely client-side using the File and ArrayBuffer APIs. Nothing leaves your device.

Can it handle very large Avro files?

It can, within the limits of your device's memory, since the whole file is loaded into memory to be parsed. Very large multi-gigabyte files may be slow or hit browser memory limits.

Related tools