Feather v2 Columnar DataFrame
Fast, language-agnostic DataFrame persistence format for Python (Pandas/Polars) and R, standardized since v2 directly atop the Apache Arrow IPC file specification.
Feather v2 uses identical `ARROW1\x00\x00` binary framing to `.arrow`, typically compressed with LZ4 or Zstd for sub-millisecond local disk I/O.
Drop any .feather file (even 100 GB+) to inspect locally
Reads tiny File.slice() header/footer pages in a sandboxed Web Worker · 0 Bytes Uploaded
.feather Magic Bytes & Header Offset Map
Feather v2 / Arrow IPC 8-byte aligned header
| Byte Offset | Length | Data Type | Field Name | Engineering Description |
|---|---|---|---|---|
| 0x00 - 0x07 | 8 B | char[8] | magic | 'ARROW1\x00\x00' (Feather v1 used 'FEA1') |
| EOF-6 .. EOF-1 | 6 B | char[6] | trailer | Trailing 'ARROW1' footer |
.feather Security & Polyglot Risk Matrix
Check head[0:6] == 'ARROW1' (or 'FEA1' if supporting legacy Feather v1) and trailing 'ARROW1'.
Read .feather Header & Metadata Without Heavy Dependencies
import os, sys
with open(sys.argv[1], "rb") as f:
head = f.read(6)
f.seek(-6, os.SEEK_END)
tail = f.read(6)
assert head == b"ARROW1" and tail == b"ARROW1"
print("Valid Feather v2 (Arrow IPC)")Deterministic .feather Sample Files & Edge Cases
minimal-v2.feather
Feather v2 file written by pyarrow.feather — a 2-column float64 frame on the Arrow IPC file spec.
curl -fsSL https://fileformat.co/fixtures/v1/feather/minimal-v2.feather -o minimal-v2.feather \
&& echo "a7b7e3734e10f27781a826cecf82630049d2b74468dea4744a47c433f88ddc4a minimal-v2.feather" | shasum -a 256 -cdataframe-metrics.feather
120-row Feather v2 frame with timestamp/string/float64 columns for pandas / Polars / R interchange tests.
curl -fsSL https://fileformat.co/fixtures/v1/feather/dataframe-metrics.feather -o dataframe-metrics.feather \
&& echo "9c926ae0f0b8243b5c925b4148d223a0087992617977aa1f8a24537e9ee400ca dataframe-metrics.feather" | shasum -a 256 -ctruncated-tail.feather
Feather file missing footer bytes and trailing ARROW1 signature — pyarrow read must raise.
curl -fsSL https://fileformat.co/fixtures/v1/feather/truncated-tail.feather -o truncated-tail.feather \
&& echo "d3a2f23f36b2b0ae8ebfbffd7606ce33280de61a137e55e3ce62bce679e6ed70 truncated-tail.feather" | shasum -a 256 -cRelated Specifications & Alternatives
Zero-copy in-memory columnar format serialized to disk with 8-byte aligned `ARROW1\x00\x00` framing and FlatBuffers schema/record-batch descriptors.
De-facto standard hybrid columnar storage format for modern data lakes (Iceberg, Delta, DuckDB, Spark), placing Thrift Compact Protocol schema and statistics in the file trailer.
Plain-text tabular interchange format notorious for real-world parser edge cases: optional UTF-8 BOMs (`EF BB BF`), multiline quoted cells, doubled quote escapes (`""`), and formula injection.