Implementation Status

The following tables summarize the features available in the various official Arrow libraries. Unless otherwise stated, the Python, R, Ruby and C/GLib libraries follow the C++ Arrow library.

Data Types

Data type (primitive)

C++

Java

Go

JavaScript

C#

Rust

Null

✓

✓

Boolean

✓

✓

✓

✓

✓

Int8/16/32/64

✓

✓

✓

✓

✓

UInt8/16/32/64

✓

✓

✓

✓

✓

Float16

✓

Float32/64

✓

✓

✓

✓

✓

Decimal128

✓

✓

Date32/64

✓

✓

✓

✓

✓

Time32/64

✓

✓

✓

✓

Timestamp

✓

✓

✓

✓

✓

Duration

✓

✓

✓

Interval

✓

✓

✓

Fixed Size Binary

✓

✓

✓

✓

Binary

✓

✓

✓

✓

✓

Large Binary

✓

✓

✓

✓

Utf8

✓

✓

✓

✓

✓

Large Utf8

✓

✓

✓

✓

Data type (nested)

C++

Java

Go

JavaScript

C#

Rust

Fixed Size List

✓

✓

✓

✓

List

✓

✓

✓

✓

✓

Large List

✓

✓

Struct

✓

✓

✓

✓

✓

Map

✓

✓

✓

Dense Union

✓

✓

Sparse Union

✓

✓

Data type (special)

C++

Java

Go

JavaScript

C#

Rust

Dictionary

✓

✓ (1)

✓ (1)

Extension

✓

✓

Notes:

  • (1) Nested dictionaries not supported

See also

The Arrow Columnar Format specification.

IPC Format

IPC Feature

C++

Java

Go

JavaScript

C#

Rust

Arrow stream format

✓

✓

✓

✓

✓

Arrow file format

✓

✓

✓

✓

✓

Record batches

✓

✓

✓

✓

✓

Dictionaries

✓

✓

✓

✓

Replacement dictionaries

✓

✓

Delta dictionaries

Tensors

✓

Sparse tensors

✓

Custom schema metadata

✓

✓

Flight RPC

Flight RPC Feature

C++

Java

Go

JavaScript

C#

Rust

gRPC transport

✓

✓

gRPC + TLS transport

✓

✓

RPC error codes

✓

✓

Authentication handlers

✓

✓

Custom client middleware

✓

✓

Custom server middleware

✓

✓

See also

The Arrow Flight RPC specification.

C Data Interface

Feature

C++

Python

R

Schema export

✓

✓

✓

Array export

✓

✓

✓

Schema import

✓

✓

✓

Array import

✓

✓

✓

See also

The C Data Interface specification.

Third-Party Data Formats

Format

C++

Java

Go

JavaScript

C#

Rust

Avro

R

CSV

R

R/W

R/W

ORC

R

Parquet

R/W

Notes:

  • R = Read supported

  • W = Write supported