What is a .avro file?
Apache Avro · Data · Apache Software Foundation · 2009
Avro is a compact, row-based data format that stores its schema alongside the data. That self-describing design makes it a favourite for streaming systems like Kafka, where producers and consumers must agree on structure.
What is a .avro file used for?
An Avro object container file starts with the bytes Obj followed by 0x01, then the JSON schema, then blocks of records encoded in a tight binary form. Because the schema travels with the data, a reader always knows how to decode the records.
Avro shines for data in motion: message queues, event pipelines and Hadoop. It supports schema evolution, so fields can be added or removed over time without breaking older readers.
What opens a .avro file?
The .avro format opens in the following apps, grouped by operating system. If one app does not work, try another from the same list.
Windows
- Python (fastavro)
- avro-tools (Java)
- DuckDB
macOS
- Python (fastavro)
- avro-tools (Java)
- DuckDB
Linux
- Python (fastavro)
- avro-tools (Java)
- Apache Kafka tooling
Open a .avro file step by step
- Confirm the file really is a .avro. Drop it into the WhatFileType identifier, which reads its signature in your browser without uploading anything.
- On Windows, open it with Python (fastavro) or avro-tools (Java).
- On Mac, use Python (fastavro) or avro-tools (Java).
- On Linux, try Python (fastavro) or avro-tools (Java).
- Still stuck? Convert the .avro to JSON, which opens more widely.
Why can't I open my .avro file?
Almost always because no installed app understands Avro. Install one of the apps above, or convert the file to a format your existing software already reads. If double-clicking opens the wrong program instead of nothing at all, the file association is set to the wrong app rather than the file being broken.
The other possibility is that the file is not really a .avro at all. Drop it into the file identifier to check it by its bytes instead of its name. Nothing is uploaded.
How to convert a .avro file
You can convert a .avro file to JSON, Parquet, CSV using a conversion tool or the export menu of an app that opens it.
What is the .avro file signature (magic bytes)?
A .avro file starts with the hex bytes 4F 62 6A 01, which read as Obj. in ASCII. Programs identify Avro by those bytes, not by the filename, so a renamed file still gives itself away.
These are the documented signatures for Avro. For a full breakdown, see the Apache Avro file signature page.
| Hex signature | Offset | ASCII | Note |
|---|---|---|---|
| 4F 62 6A 01 | 0 | Obj. | 'Obj' + 0x01 |
See the full magic-numbers reference for every format.
Frequently asked questions
What is a .avro file?
Avro is a compact, row-based data format that stores its schema alongside the data. That self-describing design makes it a favourite for streaming systems like Kafka, where producers and consumers must agree on structure.
How do I read an Avro file?
Use a library such as fastavro in Python or the avro-tools jar, both of which can print the embedded schema and dump the records to JSON.
What is the difference between Avro and Parquet?
Avro is row-based and self-describing, ideal for streaming and writing records one at a time. Parquet is columnar, ideal for analytical reads across many rows.
Does an Avro file contain its schema?
Yes. An Avro object container file embeds the writer's schema in its header, which is why a reader can decode it without any external definition.
Comparisons
Related formats
Sources
Details on this page were checked against authoritative references. How sources are ranked and what is deliberately left out is set out in the methodology.