diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-21 11:54:28 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-21 11:54:28 +0000 |
commit | e6918187568dbd01842d8d1d2c808ce16a894239 (patch) | |
tree | 64f88b554b444a49f656b6c656111a145cbbaa28 /src/arrow/docs/source/status.rst | |
parent | Initial commit. (diff) | |
download | ceph-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.rst | 239 |
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``) |