columna API reference - v0.5.0
    Preparing search index...

    Interface ArrowIpcWriteOptions

    Apache Arrow IPC — the real thing, not ArrowLike.

    toArrowIpc() writes the Arrow IPC streaming format (or the file format, a.k.a. Feather v2) and fromArrowIpc() reads both. The bytes are what apache-arrow's tableFromIPC, DuckDB(-Wasm)'s insertArrowFromIPCStream, pyarrow's ipc.open_stream / open_file, Polars' read_ipc_stream / read_ipc and pandas' read_feather consume, and what they produce is what this reader takes. No dependency: the FlatBuffers encoding of the Schema / RecordBatch / DictionaryBatch messages is small enough to write by hand (the reference-style back-to-front builder below) and the interop suite pins it against apache-arrow.

    Type mapping (columna → Arrow): f64 → Float64, f32 → Float32, i32 → Int32, u32 → UInt32, bool → Bool, utf8 → Utf8, category → Dictionary<Int32, Utf8>, datetime → Timestamp(MILLISECOND). Arrow → columna additionally accepts Int8/16/64 and UInt8/16/64 (64-bit → f64, exact below 2^53), Float16 (→ f32), LargeUtf8 and Utf8View (the string layout Polars ≥ 1.0 and DuckDB emit), Timestamp in any unit and Date32/Date64 (→ datetime, milliseconds), Null (→ all-null f64) and dictionary-encoded strings with any index width. Nested, decimal, binary, interval and compressed batches are refused with the field name in the error rather than decoded wrongly.

    interface ArrowIpcWriteOptions {
        batchRows?: number;
        columns?: string[];
        format?: "stream" | "file";
    }
    Index
    batchRows?: number

    Split the table into record batches of this many rows (default: one batch).

    columns?: string[]

    Subset of columns to write, in order.

    format?: "stream" | "file"

    'stream' (default; what DuckDB insertArrowFromIPCStream / pl.read_ipc_stream expect) or 'file' (Feather v2, random access).