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