arrow library

Owned Arrow logical values and standard Apache Arrow IPC interchange.

This standalone core is separate from the narrower Polars copied-batch protocol. Logical types include maps, unions, intervals, fixed-size binary, views, large lists, and run-end encoding. int128 and uint128 are binding extensions rather than Apache Arrow integer types.

Values are owned, copied Dart objects: there is no zero-copy buffer access or memory mapping. ArrowIpcStreamReader, ArrowIpcStreamWriter, ArrowIpcFileReader and ArrowIpcFileWriter implement the standard Apache Arrow IPC stream and file formats (metadata V5, little-endian only) over in-memory bytes, bounded by ArrowIpcLimits. Writers emit uncompressed bodies. Readers decode LZ4_FRAME and ZSTD bodies on the Dart VM via the pure Dart libcompress package, and LZ4_FRAME only on the web. int128/uint128 columns cannot be written to IPC.

Classes

ArrowArray
ArrowArrayBuilder
ArrowBinaryType
ArrowBinaryValue
ArrowBooleanType
ArrowBooleanValue
ArrowDataType
ArrowDateType
ArrowDecimalType
ArrowDecimalValue
ArrowDictionaryIndexValue
ArrowDictionaryType
ArrowDurationType
ArrowExtensionType
ArrowExtensionValue
ArrowField
ArrowFixedSizeBinaryType
Fixed-width binary: every value has exactly byteWidth bytes.
ArrowFixedSizeListType
ArrowFloatingType
ArrowFloatingValue
An IEEE floating-point bit pattern. This preserves NaN payloads and signed zero.
ArrowIntegerType
ArrowIntegerValue
ArrowIntervalType
Calendar interval in the given unit.
ArrowIntervalValue
An Arrow interval. Only the components relevant to unit are non-zero: yearMonth uses months; dayTime uses days and milliseconds; monthDayNano uses months, days, and nanoseconds.
ArrowIpcFileReader
Reads an Arrow IPC random-access file (ARROW1 magic plus footer).
ArrowIpcFileWriter
Writes an Arrow IPC random-access file.
ArrowIpcLimits
Resource limits applied while decoding untrusted IPC input.
ArrowIpcStreamReader
Reads an Arrow IPC stream (a sequence of encapsulated messages).
ArrowIpcStreamWriter
Writes an Arrow IPC stream terminated by the end-of-stream marker.
ArrowListType
ArrowListValue
ArrowMapEntry
One key/value pair of an ArrowMapValue. Keys are never null.
ArrowMapType
Arrow Map: a list of non-null entries structs of <key, value>.
ArrowMapValue
An Arrow map row. Entry order is preserved and duplicate keys are retained, matching the physical list-of-entries layout.
ArrowNullType
ArrowRunEndEncodedType
Run-end encoded data. runEndsField must be a non-nullable int16, int32, or int64 field. Arrays of this type hold logical per-row values.
ArrowSchema
ArrowStringValue
ArrowStructEntry
ArrowStructType
ArrowStructValue
Ordered struct members. Names are retained to detect field-order mistakes.
ArrowTable
An immutable schema plus its record batches.
ArrowTemporalValue
A raw date/time/timestamp/duration counter in the datatype's declared unit.
ArrowTimestampType
ArrowTimeType
ArrowUnionType
Arrow sparse or dense union. Each child has a type id (default its index).
ArrowUnionValue
A union row tagged with its child typeId. A null value is a null in the selected child (unions have no top-level validity bitmap).
ArrowUtf8Type
ArrowValue
OwnedBatchJsonCodec
JSON codec for the protocol's copied, binding-owned logical column batches.
RecordBatch

Enums

ArrowDateUnit
ArrowIntervalUnit
Arrow interval unit, as in IntervalUnit from Schema.fbs.
ArrowOffsetWidth
Physical layout family for variable-length string, binary, and list data.
ArrowTimeUnit
ArrowUnionMode
Arrow union physical layout.

Functions

expandRunEnds(ArrowRunEndEncodedType type, List<int> runEnds, List<ArrowValue?> runValues, {int? maxLength}) → List<ArrowValue?>
Expands a run-end encoding to logical rows, validating run ends.
nestedDictionaryTypes(ArrowDataType type) → List<ArrowDictionaryType>
The dictionary types strictly inside type, in ArrowArray.nestedDictionaries order.
validateArrowValue(ArrowDataType type, ArrowValue value, {String path = 'value'}) → void