summaryrefslogtreecommitdiffstats
path: root/src/arrow/docs/source/status.rst
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-21 11:54:28 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-21 11:54:28 +0000
commite6918187568dbd01842d8d1d2c808ce16a894239 (patch)
tree64f88b554b444a49f656b6c656111a145cbbaa28 /src/arrow/docs/source/status.rst
parentInitial commit. (diff)
downloadceph-e6918187568dbd01842d8d1d2c808ce16a894239.tar.xz
ceph-e6918187568dbd01842d8d1d2c808ce16a894239.zip
Adding upstream version 18.2.2.upstream/18.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/arrow/docs/source/status.rst')
-rw-r--r--src/arrow/docs/source/status.rst239
1 files changed, 239 insertions, 0 deletions
diff --git a/src/arrow/docs/source/status.rst b/src/arrow/docs/source/status.rst
new file mode 100644
index 000000000..8e3e998df
--- /dev/null
+++ b/src/arrow/docs/source/status.rst
@@ -0,0 +1,239 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements. See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership. The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License. You may obtain a copy of the License at
+
+.. http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied. See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+=====================
+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 | C++ | Java | Go | JavaScript | C# | Rust | Julia |
+| (primitive) | | | | | | | |
++===================+=======+=======+=======+============+=======+=======+=======+
+| Null | ✓ | ✓ | ✓ | | | ✓ | ✓ |
++-------------------+-------+-------+-------+------------+-------+-------+-------+
+| Boolean | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
++-------------------+-------+-------+-------+------------+-------+-------+-------+
+| Int8/16/32/64 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
++-------------------+-------+-------+-------+------------+-------+-------+-------+
+| UInt8/16/32/64 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
++-------------------+-------+-------+-------+------------+-------+-------+-------+
+| Float16 | | | ✓ | | | | ✓ |
++-------------------+-------+-------+-------+------------+-------+-------+-------+
+| Float32/64 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
++-------------------+-------+-------+-------+------------+-------+-------+-------+
+| Decimal128 | ✓ | ✓ | ✓ | | ✓ | ✓ | ✓ |
++-------------------+-------+-------+-------+------------+-------+-------+-------+
+| Decimal256 | ✓ | ✓ | | | ✓ | | ✓ |
++-------------------+-------+-------+-------+------------+-------+-------+-------+
+| Date32/64 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
++-------------------+-------+-------+-------+------------+-------+-------+-------+
+| Time32/64 | ✓ | ✓ | ✓ | ✓ | | ✓ | ✓ |
++-------------------+-------+-------+-------+------------+-------+-------+-------+
+| Timestamp | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
++-------------------+-------+-------+-------+------------+-------+-------+-------+
+| Duration | ✓ | ✓ | ✓ | | | ✓ | ✓ |
++-------------------+-------+-------+-------+------------+-------+-------+-------+
+| Interval | ✓ | ✓ | ✓ | | | ✓ | ✓ |
++-------------------+-------+-------+-------+------------+-------+-------+-------+
+| Fixed Size Binary | ✓ | ✓ | ✓ | ✓ | | ✓ | ✓ |
++-------------------+-------+-------+-------+------------+-------+-------+-------+
+| Binary | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
++-------------------+-------+-------+-------+------------+-------+-------+-------+
+| Large Binary | ✓ | ✓ | ✓ | ✓ | | ✓ | ✓ |
++-------------------+-------+-------+-------+------------+-------+-------+-------+
+| Utf8 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
++-------------------+-------+-------+-------+------------+-------+-------+-------+
+| Large Utf8 | ✓ | ✓ | ✓ | ✓ | | ✓ | ✓ |
++-------------------+-------+-------+-------+------------+-------+-------+-------+
+
++-------------------+-------+-------+-------+------------+-------+-------+-------+
+| Data type | C++ | Java | Go | JavaScript | C# | Rust | Julia |
+| (nested) | | | | | | | |
++===================+=======+=======+=======+============+=======+=======+=======+
+| Fixed Size List | ✓ | ✓ | ✓ | ✓ | | ✓ | ✓ |
++-------------------+-------+-------+-------+------------+-------+-------+-------+
+| List | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
++-------------------+-------+-------+-------+------------+-------+-------+-------+
+| Large List | ✓ | ✓ | | | | ✓ | ✓ |
++-------------------+-------+-------+-------+------------+-------+-------+-------+
+| Struct | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
++-------------------+-------+-------+-------+------------+-------+-------+-------+
+| Map | ✓ | ✓ | ✓ | ✓ | | | ✓ |
++-------------------+-------+-------+-------+------------+-------+-------+-------+
+| Dense Union | ✓ | ✓ | | | | | ✓ |
++-------------------+-------+-------+-------+------------+-------+-------+-------+
+| Sparse Union | ✓ | ✓ | | | | | ✓ |
++-------------------+-------+-------+-------+------------+-------+-------+-------+
+
++-------------------+-------+-------+-------+------------+-------+-------+-------+
+| Data type | C++ | Java | Go | JavaScript | C# | Rust | Julia |
+| (special) | | | | | | | |
++===================+=======+=======+=======+============+=======+=======+=======+
+| Dictionary | ✓ | ✓ (1) | | ✓ (1) | | ✓ (1) | ✓ |
++-------------------+-------+-------+-------+------------+-------+-------+-------+
+| Extension | ✓ | ✓ | ✓ | | | | ✓ |
++-------------------+-------+-------+-------+------------+-------+-------+-------+
+
+Notes:
+
+* \(1) Nested dictionaries not supported
+
+.. seealso::
+ The :ref:`format_columnar` specification.
+
+
+IPC Format
+==========
+
++-----------------------------+-------+-------+-------+------------+-------+-------+-------+
+| IPC Feature | C++ | Java | Go | JavaScript | C# | Rust | Julia |
+| | | | | | | | |
++=============================+=======+=======+=======+============+=======+=======+=======+
+| Arrow stream format | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
++-----------------------------+-------+-------+-------+------------+-------+-------+-------+
+| Arrow file format | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
++-----------------------------+-------+-------+-------+------------+-------+-------+-------+
+| Record batches | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
++-----------------------------+-------+-------+-------+------------+-------+-------+-------+
+| Dictionaries | ✓ | ✓ | ✓ | ✓ | | ✓ | ✓ |
++-----------------------------+-------+-------+-------+------------+-------+-------+-------+
+| Replacement dictionaries | ✓ | ✓ | | | | | ✓ |
++-----------------------------+-------+-------+-------+------------+-------+-------+-------+
+| Delta dictionaries | ✓ (1) | | | | | | ✓ |
++-----------------------------+-------+-------+-------+------------+-------+-------+-------+
+| Tensors | ✓ | | | | | | |
++-----------------------------+-------+-------+-------+------------+-------+-------+-------+
+| Sparse tensors | ✓ | | | | | | |
++-----------------------------+-------+-------+-------+------------+-------+-------+-------+
+| Buffer compression | ✓ | ✓ (3) | ✓ | | | | ✓ |
++-----------------------------+-------+-------+-------+------------+-------+-------+-------+
+| Endianness conversion | ✓ (2) | | | | | | |
++-----------------------------+-------+-------+-------+------------+-------+-------+-------+
+| Custom schema metadata | ✓ | ✓ | ✓ | | | ✓ | ✓ |
++-----------------------------+-------+-------+-------+------------+-------+-------+-------+
+
+Notes:
+
+* \(1) Delta dictionaries not supported on nested dictionaries
+
+* \(2) Data with non-native endianness can be byte-swapped automatically when reading.
+
+* \(3) LZ4 Codec currently is quite inefficient. ARROW-11901 tracks improving performance.
+
+.. seealso::
+ The :ref:`format-ipc` specification.
+
+
+Flight RPC
+==========
+
++-----------------------------+-------+-------+-------+------------+-------+-------+-------+
+| Flight RPC Feature | C++ | Java | Go | JavaScript | C# | Rust | Julia |
+| | | | | | | | |
++=============================+=======+=======+=======+============+=======+=======+=======+
+| gRPC transport | ✓ | ✓ | ✓ | | ✓ (1) | | |
++-----------------------------+-------+-------+-------+------------+-------+-------+-------+
+| gRPC + TLS transport | ✓ | ✓ | ✓ | | ✓ | | |
++-----------------------------+-------+-------+-------+------------+-------+-------+-------+
+| RPC error codes | ✓ | ✓ | ✓ | | ✓ | | |
++-----------------------------+-------+-------+-------+------------+-------+-------+-------+
+| Authentication handlers | ✓ | ✓ | ✓ | | ✓ (2) | | |
++-----------------------------+-------+-------+-------+------------+-------+-------+-------+
+| Custom client middleware | ✓ | ✓ | ✓ | | | | |
++-----------------------------+-------+-------+-------+------------+-------+-------+-------+
+| Custom server middleware | ✓ | ✓ | ✓ | | | | |
++-----------------------------+-------+-------+-------+------------+-------+-------+-------+
+
+Notes:
+
+* \(1) No support for handshake or DoExchange.
+* \(2) Support using AspNetCore authentication handlers.
+
+.. seealso::
+ The :ref:`flight-rpc` specification.
+
+
+C Data Interface
+================
+
++-----------------------------+-----+--------+---+------+----+------+--------+------+
+| Feature | C++ | Python | R | Rust | Go | Java | C/GLib | Ruby |
+| | | | | | | | | |
++=============================+=====+========+===+======+====+======+========+======+
+| Schema export | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
++-----------------------------+-----+--------+---+------+----+------+--------+------+
+| Array export | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
++-----------------------------+-----+--------+---+------+----+------+--------+------+
+| Schema import | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
++-----------------------------+-----+--------+---+------+----+------+--------+------+
+| Array import | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
++-----------------------------+-----+--------+---+------+----+------+--------+------+
+
+.. seealso::
+ The :ref:`C Data Interface <c-data-interface>` specification.
+
+
+C Stream Interface (experimental)
+=================================
+
++-----------------------------+-----+--------+----+--------+------+
+| Feature | C++ | Python | Go | C/GLib | Ruby |
+| | | | | | |
++=============================+=====+========+====+========+======+
+| Stream export | ✓ | ✓ | | ✓ | ✓ |
++-----------------------------+-----+--------+----+--------+------+
+| Stream import | ✓ | ✓ | ✓ | ✓ | ✓ |
++-----------------------------+-----+--------+----+--------+------+
+
+.. seealso::
+ The :ref:`C Stream Interface <c-stream-interface>` specification.
+
+
+Third-Party Data Formats
+========================
+
++-----------------------------+---------+---------+-------+------------+-------+---------+-------+
+| Format | C++ | Java | Go | JavaScript | C# | Rust | Julia |
+| | | | | | | | |
++=============================+=========+=========+=======+============+=======+=========+=======+
+| Avro | | R | | | | | |
++-----------------------------+---------+---------+-------+------------+-------+---------+-------+
+| CSV | R | | R/W | | | R/W | R/W |
++-----------------------------+---------+---------+-------+------------+-------+---------+-------+
+| ORC | R/W | R (2) | | | | | |
++-----------------------------+---------+---------+-------+------------+-------+---------+-------+
+| Parquet | R/W | R (3) | | | | R/W (1) | |
++-----------------------------+---------+---------+-------+------------+-------+---------+-------+
+
+Notes:
+
+* *R* = Read supported
+
+* *W* = Write supported
+
+* \(1) Nested read/write not supported.
+
+* \(2) Through JNI bindings. (Provided by ``org.apache.arrow.orc:arrow-orc``)
+
+* \(3) Through JNI bindings to Arrow C++ Datasets. (Provided by ``org.apache.arrow:arrow-dataset``)