Apache Avro is a compact, schema-driven serialization format widely used with Kafka and the Confluent Schema Registry. An Avro schema is itself a JSON document describing records, enums, arrays, maps, unions, and fixed-size byte blobs. When schemas grow nested it becomes hard to read the raw JSON, so this viewer turns it into a collapsible tree and checks its structure.
How it works
The parser walks the schema recursively according to the Avro specification:
- A string that is a primitive name (
int,string, etc.) is a leaf; any other string is treated as a reference to a previously named type. - A JSON array is a union — each element is a branch, commonly used as
["null", "string"]for nullable fields. - A record must carry a
nameand afieldsarray; each field needs anameand atype, and an optionaldefaultis shown alongside it. - enum needs
symbols, array needsitems, map needsvalues, and fixed needs a numericsize.
As it walks, it collects any structural violations and reports them with a JSON-path-style location so you can jump straight to the problem.
Example
A nullable email field is written as:
{ "name": "email", "type": ["null", "string"], "default": null }
The viewer renders this as a union node with two children — null and string — and notes the default value. A record’s role field pointing at an inline enum shows its symbols joined as ADMIN | USER | GUEST.
Notes
Validity here means the schema is well-formed, not that it is compatible with an existing registered version. For producer/consumer compatibility checks (backward, forward, full) you still need the schema registry’s compatibility rules — but a clean structural pass is the prerequisite for any of that.