Avro Viewer, Apache Arrow Viewer & Feather Viewer

Avro Viewer, Apache Arrow Viewer & Feather Viewer, a VS Code extension by Zovo

Click an .avro, .arrow, .feather or .ipc file and read it as a table in VS Code, with no Python and no upload.

Install in VS CodeOpen the Marketplace page

Free, MIT license. Needs VS Code 1.90.0 or newer. Extension ID zovo.arrow-avro-viewer, version 0.1.5.

A 60,000 row Arrow IPC file of taxi trips in VS Code, with typed column headers, page 1 of 60 and the stats of the fare column open below the table

Screenshots come from the extension running in VS Code 1.142 on files made by scripts/make-samples.js. No real data appears.

Quick start

  1. Install the extension and click any .avro, .arrow, .arrows, .feather or .ipc file.
  2. Scroll or use the pager, open the Schema tab, or click a column header for its stats.

Run "Avro and Arrow Viewer: Get Started" for a short tour.

Questions people ask

Is Avro Viewer, Apache Arrow Viewer & Feather Viewer free?

Yes. Avro Viewer, Apache Arrow Viewer & Feather Viewer is free and MIT licensed.

How do I install Avro Viewer, Apache Arrow Viewer & Feather Viewer?

Click "Install in VS Code" above, or search for zovo.arrow-avro-viewer in the Extensions view.

More pictures

Schema with types and nullabilityAvro file with search results
The Schema tab of an Avro file in the light theme, with field names, Avro types such as timestamp-millis and decimal(10,2), nullability, docs and the raw schemaAn Avro customers file filtered to the rows that contain Graz, with the address record of one row opened below

What you can do

The table shows 200 rows per request and keeps only a few decoded batches in memory. The pager at the top right shows the page you are on (1,000 rows a page) and jumps a page at a time. Type a number in Row # to jump to that row. Click a cell to see its full value below the table, with JSON formatting for nested values and a Copy button.

Each column header shows the name, a short type and "not null" when the schema says so. Arrow types come from the IPC schema, such as Int64, Timestamp<MILLISECOND, UTC> or dictionary<Utf8>. Avro types are written short, such as string? for a union with null, array<string>, enum Plan or decimal(10,2).

Click a header to compute stats for that column. The stats read every row (or every match after Find) in the background, update as they go, and stop when you click Cancel or close the panel. Distinct values are counted exactly up to 100,000.

Find matches text in any column, or in the one you pick, ignoring case. It runs in the extension host with a progress count. Cancel keeps the matches found so far. Show all rows clears the search.

Export has four choices. You can save this page or all rows, each as CSV or JSON. After a search, "all rows" means all matches. Nested values go into CSV cells as JSON text. A CSV can open in Table Viewer by Zovo straight from the message that confirms the export.

The Schema tab also shows the format, metadata version, compression or codec, the number of record batches or blocks, the dictionaries, the file metadata (for example the pandas metadata that pyarrow writes) and, for Avro, the raw schema JSON.

Formats

ExtensionRead as
.featherFeather V2 (Arrow IPC file), uncompressed, LZ4 frame or ZSTD
.arrowArrow IPC file format, or stream format if there is no file header
.arrows, .ipcArrow IPC stream format, or file format if the header says so
.avroAvro object container file with the null, deflate, snappy or zstandard codec

The reader is picked from the first bytes of the file, so a stream saved as .arrow still opens.

Limits

WhatLimit
File sizeUp to 4 GB. Bigger files show a message instead of loading.
One record batch or Avro blockUp to 1 GB, since it is decoded whole when you scroll to it.
Remote files (virtual workspaces)Read whole, up to 256 MB.
Search resultsThe first 5,000,000 matches.
Feather V1Not supported. Files written before 2020 get a message that explains how to save them as V2.
Avro bzip2 and xz codecsNot supported. The message names the codec.
ORC and ParquetNot read here. Parquet opens in Table Viewer by Zovo.

Privacy

The extension runs offline. It makes no network calls and has no telemetry. It never writes to the file you are viewing; Export always asks for a new file. The webview runs under a strict Content Security Policy with no remote scripts, and file content goes into the page only as text.

Settings

SettingDefaultWhat it does
arrowAvroViewer.askForRatingtrueAsk one time for a Marketplace rating after a few days of use. Nothing is sent anywhere.
arrowAvroViewer.showSupportLinkstrueShow the small Sponsor and More free viewers links in the status line.

Libraries

Apache Arrow for JavaScript (Apache-2.0), avsc (MIT), fzstd (MIT), lz4js (ISC) and snappyjs (MIT). The license texts are in THIRD-PARTY-NOTICES.txt.

License

MIT. Not affiliated with the Apache Software Foundation. Apache Arrow and Apache Avro are trademarks of the Apache Software Foundation.

Install Avro Viewer, Apache Arrow Viewer & Feather Viewer

Click the button to open VS Code and install it, or press Ctrl+P (Cmd+P on macOS) in VS Code and run ext install zovo.arrow-avro-viewer.

Free, MIT license. Needs VS Code 1.90.0 or newer. Extension ID zovo.arrow-avro-viewer, version 0.1.5.

Source code and issues are on GitHub.

All our VS Code extensions

Support this work

If this extension saves you time, you can support the work on GitHub Sponsors. Monthly tiers start at $5, and one-time tiers start at $15. Sponsorship is optional, and the tool works the same without it.