Data format

ARROW converter

An .arrow file is an Apache Arrow IPC file: a columnar table written in exactly the memory layout Arrow uses at runtime, so a reader can point at the bytes and start working without parsing or copying anything. The file format is the in-memory format with a header, a footer and a little framing, which is the entire idea.

Private for supported formats — processed in your browser

Convert supported files

Runs on your device

Drop ARROW 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 ARROW comes from

Arrow was announced in 2016 by contributors from Impala, Spark, Pandas, Drill and a dozen other projects who had all independently written a converter for every other engine's row format. The standard fixed the N-squared problem by defining one columnar representation everybody could agree on. The IPC file format followed as the way to put that representation on disk or on a socket unchanged, and Arrow Flight later carried the same buffers over gRPC.

How ARROW works

  • Data is columnar: each column is one contiguous buffer plus an optional validity bitmap, so a scan touches only the columns it needs.
  • The file begins and ends with the ARROW1 magic; the footer holds the schema and the block offsets, so a reader seeks rather than streams.
  • Buffers are padded to 64-byte boundaries so columns can be read with SIMD instructions and mapped straight into memory.
  • Nulls live in a separate validity bitmap rather than in a sentinel value, so a null integer costs one bit and no range of the type is reserved.
  • The schema is embedded, including nested list, struct and map types, so the file describes itself completely.

When to use ARROW

  • Handing a table between Python, R, Java and JavaScript without a serialization step
  • Caching an intermediate result that will be read many times by an analytics engine
  • Exporting a query result for a colleague who needs exact types, not CSV's guesses
  • Turning a columnar extract into JSON, CSV or a spreadsheet for review

Strengths and limitations

Strengths

  • Zero-copy reads: opening a file costs almost nothing regardless of its size
  • Types are exact and preserved, including nulls, timestamps and nested structures
  • One representation shared by most of the modern data ecosystem

Limitations

  • Uncompressed by default, so files are substantially larger than Parquet
  • Designed for interchange and short-lived caching rather than long-term archival storage
  • Not human-readable, and not diffable in version control

Compatibility

Arrow has first-party implementations for C++, Java, Python (pyarrow), R, Go, Rust, C#, Julia and JavaScript, and Pandas, Polars, DuckDB, Spark and BigQuery all speak it. Novus Convert reads .arrow files in the browser with the official JavaScript implementation and writes JSON, CSV, XLSX or Feather; because Feather v2 IS the Arrow IPC file format, arrow-to-feather is a renaming of the same bytes rather than a re-encoding.

The embedded schema, field names and custom key-value metadata are read; JSON and CSV have nowhere to put schema metadata, so it is reported rather than carried.