Data
js/data.md
Fino includes pure TypeScript data tooling for columnar in-memory data and file interchange. The current public surface centers on Apache Arrow and Parquet.
Arrow
fino:data exposes the arrow namespace for schemas, arrays, vectors,
record batches, tables, IPC readers/writers, and the C Data Interface:
import { arrow } from 'fino:data';
const batch = arrow.RecordBatch.from({ id: [1, 2], name: ['a', 'b'] });
const table = new arrow.Table(batch.schema, [batch]);
console.log(table.numRows);
Use Arrow when data should stay columnar in memory or cross a boundary through Arrow IPC or C Data Interface conventions.
Parquet
fino:data/parquet reads and writes Parquet bytes using Arrow tables and record
batches:
import { readParquet, writeParquet } from 'fino:data/parquet';
const bytes = writeParquet(table);
const restored = readParquet(bytes);
Parquet support is intended for local interchange, fixtures, and data pipelines inside Fino applications. Unsupported encodings, nested shapes, or compression codecs should fail clearly rather than silently changing data.