This is an automated email from the ASF dual-hosted git repository. raulcd pushed a commit to branch maint-16.0.0 in repository https://gitbox.apache.org/repos/asf/arrow.git
commit 93d2db0cf232fb933c1cda3feeff7e32d992b8ab Author: Dewey Dunnington <[email protected]> AuthorDate: Tue Apr 9 15:27:59 2024 -0300 GH-40689: [Docs] Add nanoarrow to implementation status page (#41052) ### Rationale for this change nanoarrow now supports most types and reading IPC streams. As discussed in the issue, there is interest in adding it to the implementation status page for visibility. ### What changes are included in this PR? A column was added to the table with the appropriate values characterizing the C library implementation status. ### Are these changes tested? Not needed (docs!) ### Are there any user-facing changes? No (docs!) * GitHub Issue: #40689 Lead-authored-by: Dewey Dunnington <[email protected]> Co-authored-by: Dewey Dunnington <[email protected]> Signed-off-by: Dewey Dunnington <[email protected]> --- docs/source/index.rst | 1 + docs/source/status.rst | 470 +++++++++++++++++++++++++------------------------ 2 files changed, 237 insertions(+), 234 deletions(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 2ca63c5ebd..57143b1196 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -109,6 +109,7 @@ Implementations JavaScript <js/index> Julia <https://arrow.apache.org/julia/> MATLAB <https://github.com/apache/arrow/blob/main/matlab/README.md> + nanoarrow <https://arrow.apache.org/nanoarrow/> Python <python/index> R <r/index> Ruby <https://github.com/apache/arrow/blob/main/ruby/README.md> diff --git a/docs/source/status.rst b/docs/source/status.rst index dc60b311a1..f4672d6b4b 100644 --- a/docs/source/status.rst +++ b/docs/source/status.rst @@ -28,88 +28,88 @@ 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 | Swift | -| (primitive) | | | | | | | | | -+===================+=======+=======+=======+============+=======+=======+=======+=======+ -| Null | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Boolean | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Int8/16/32/64 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| UInt8/16/32/64 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Float16 | ✓ | ✓ (1) | ✓ | ✓ | ✓ (2)| ✓ | ✓ | | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Float32/64 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Decimal128 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Decimal256 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Date32/64 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Time32/64 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Timestamp | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Duration | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Interval | ✓ | ✓ | ✓ | | ✓ | ✓ | ✓ | | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Fixed Size Binary | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Binary | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Large Binary | ✓ | ✓ | ✓ | ✓ | | ✓ | ✓ | | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Utf8 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Large Utf8 | ✓ | ✓ | ✓ | ✓ | | ✓ | ✓ | | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Binary View | ✓ | | ✓ | | ✓ | | | | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Large Binary View | ✓ | | ✓ | | | | | | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Utf8 View | ✓ | | ✓ | | ✓ | | | | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Large Utf8 View | ✓ | | ✓ | | | | | | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ - -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Data type | C++ | Java | Go | JavaScript | C# | Rust | Julia | Swift | -| (nested) | | | | | | | | | -+===================+=======+=======+=======+============+=======+=======+=======+=======+ -| Fixed Size List | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| List | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Large List | ✓ | ✓ | ✓ | | | ✓ | ✓ | | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| List View | ✓ | | ✓ | | ✓ | | | | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Large List View | ✓ | | ✓ | | | | | | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Struct | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Map | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Dense Union | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Sparse Union | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ - -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Data type | C++ | Java | Go | JavaScript | C# | Rust | Julia | Swift | -| (special) | | | | | | | | | -+===================+=======+=======+=======+============+=======+=======+=======+=======+ -| Dictionary | ✓ | ✓ (3) | ✓ | ✓ | ✓ | ✓ (3) | ✓ | | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Extension | ✓ | ✓ | ✓ | | | ✓ | ✓ | | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Run-End Encoded | ✓ | | ✓ | | | | | | -+-------------------+-------+-------+-------+------------+-------+-------+-------+-------+ ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Data type | C++ | Java | Go | JS | C# | Rust | Julia | Swift | nanoarrow | +| (primitive) | | | | | | | | | | ++===================+=======+=======+=======+====+=======+=======+=======+=======+===========+ +| Null | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Boolean | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Int8/16/32/64 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| UInt8/16/32/64 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Float16 | ✓ | ✓ (1) | ✓ | ✓ | ✓ (2)| ✓ | ✓ | | ✓ | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Float32/64 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Decimal128 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Decimal256 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Date32/64 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Time32/64 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Timestamp | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Duration | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Interval | ✓ | ✓ | ✓ | | ✓ | ✓ | ✓ | | ✓ | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Fixed Size Binary | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Binary | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Large Binary | ✓ | ✓ | ✓ | ✓ | | ✓ | ✓ | | ✓ | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Utf8 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Large Utf8 | ✓ | ✓ | ✓ | ✓ | | ✓ | ✓ | | ✓ | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Binary View | ✓ | | ✓ | | ✓ | | | | | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Large Binary View | ✓ | | ✓ | | | | | | | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Utf8 View | ✓ | | ✓ | | ✓ | | | | | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Large Utf8 View | ✓ | | ✓ | | | | | | | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ + ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Data type | C++ | Java | Go | JS | C# | Rust | Julia | Swift | nanoarrow | +| (nested) | | | | | | | | | | ++===================+=======+=======+=======+====+=======+=======+=======+=======+===========+ +| Fixed Size List | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| List | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Large List | ✓ | ✓ | ✓ | | | ✓ | ✓ | | ✓ | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| List View | ✓ | | ✓ | | ✓ | | | | | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Large List View | ✓ | | ✓ | | | | | | | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Struct | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Map | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Dense Union | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Sparse Union | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ + ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Data type | C++ | Java | Go | JS | C# | Rust | Julia | Swift | nanoarrow | +| (special) | | | | | | | | | | ++===================+=======+=======+=======+====+=======+=======+=======+=======+===========+ +| Dictionary | ✓ | ✓ (3) | ✓ | ✓ | ✓ | ✓ (3) | ✓ | | ✓ | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Extension | ✓ | ✓ | ✓ | | | ✓ | ✓ | | ✓ | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Run-End Encoded | ✓ | | ✓ | | | | | | | ++-------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +-----------------------+-------+-------+-------+------------+-------+-------+-------+-------+ | Canonical | C++ | Java | Go | JavaScript | C# | Rust | Julia | Swift | @@ -134,32 +134,32 @@ Notes: IPC Format ========== -+-----------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| IPC Feature | C++ | Java | Go | JavaScript | C# | Rust | Julia | Swift | -| | | | | | | | | | -+=============================+=======+=======+=======+============+=======+=======+=======+=======+ -| Arrow stream format | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -+-----------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Arrow file format | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -+-----------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Record batches | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -+-----------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Dictionaries | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | -+-----------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Replacement dictionaries | ✓ | ✓ | ✓ | | | | ✓ | | -+-----------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Delta dictionaries | ✓ (1) | | ✓ (1) | ✓ | ✓ | | ✓ | | -+-----------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Tensors | ✓ | | | | | | | | -+-----------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Sparse tensors | ✓ | | | | | | | | -+-----------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Buffer compression | ✓ | ✓ (3) | ✓ | | ✓ | ✓ | ✓ | | -+-----------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Endianness conversion | ✓ (2) | | ✓ (2) | | | | | | -+-----------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Custom schema metadata | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | -+-----------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ ++-----------------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| IPC Feature | C++ | Java | Go | JS | C# | Rust | Julia | Swift | nanoarrow | +| | | | | | | | | | | ++=============================+=======+=======+=======+====+=======+=======+=======+=======+===========+ +| Arrow stream format | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ (4) | ++-----------------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Arrow file format | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | ++-----------------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Record batches | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ++-----------------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Dictionaries | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | ++-----------------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Replacement dictionaries | ✓ | ✓ | ✓ | | | | ✓ | | | ++-----------------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Delta dictionaries | ✓ (1) | | ✓ (1) | ✓ | ✓ | | ✓ | | | ++-----------------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Tensors | ✓ | | | | | | | | | ++-----------------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Sparse tensors | ✓ | | | | | | | | | ++-----------------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Buffer compression | ✓ | ✓ (3) | ✓ | | ✓ | ✓ | ✓ | | | ++-----------------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Endianness conversion | ✓ (2) | | ✓ (2) | | | | | | ✓ (2) | ++-----------------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ +| Custom schema metadata | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | ++-----------------------------+-------+-------+-------+----+-------+-------+-------+-------+-----------+ Notes: @@ -169,6 +169,8 @@ Notes: * \(3) LZ4 Codec currently is quite inefficient. ARROW-11901 tracks improving performance. +* \(4) The nanoarrow IPC implementation is only implemented for reading IPC streams. + .. seealso:: The :ref:`format-ipc` specification. @@ -177,57 +179,57 @@ Notes: Flight RPC ========== -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Flight RPC Transport | C++ | Java | Go | JavaScript | C# | Rust | Julia | Swift | -+============================================+=======+=======+=======+============+=======+=======+=======+=======+ -| gRPC_ transport (grpc:, grpc+tcp:) | ✓ | ✓ | ✓ | | ✓ | ✓ | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| gRPC domain socket transport (grpc+unix:) | ✓ | ✓ | ✓ | | ✓ | ✓ | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| gRPC + TLS transport (grpc+tls:) | ✓ | ✓ | ✓ | | ✓ | ✓ | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| UCX_ transport (ucx:) | ✓ | | | | | | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| Flight RPC Transport | C++ | Java | Go | JS | C# | Rust | Julia | Swift | ++============================================+=======+=======+=======+====+=======+=======+=======+=======+ +| gRPC_ transport (grpc:, grpc+tcp:) | ✓ | ✓ | ✓ | | ✓ | ✓ | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| gRPC domain socket transport (grpc+unix:) | ✓ | ✓ | ✓ | | ✓ | ✓ | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| gRPC + TLS transport (grpc+tls:) | ✓ | ✓ | ✓ | | ✓ | ✓ | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| UCX_ transport (ucx:) | ✓ | | | | | | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ Supported features in the gRPC transport: -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Flight RPC Feature | C++ | Java | Go | JavaScript | C# | Rust | Julia | Swift | -+============================================+=======+=======+=======+============+=======+=======+=======+=======+ -| All RPC methods | ✓ | ✓ | ✓ | | × (1) | ✓ | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Authentication handlers | ✓ | ✓ | ✓ | | ✓ (2) | ✓ | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Call timeouts | ✓ | ✓ | ✓ | | | ✓ | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Call cancellation | ✓ | ✓ | ✓ | | | ✓ | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Concurrent client calls (3) | ✓ | ✓ | ✓ | | ✓ | ✓ | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Custom middleware | ✓ | ✓ | ✓ | | | ✓ | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| RPC error codes | ✓ | ✓ | ✓ | | ✓ | ✓ | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| Flight RPC Feature | C++ | Java | Go | JS | C# | Rust | Julia | Swift | ++============================================+=======+=======+=======+====+=======+=======+=======+=======+ +| All RPC methods | ✓ | ✓ | ✓ | | ✓ (1) | ✓ | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| Authentication handlers | ✓ | ✓ | ✓ | | ✓ (2) | ✓ | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| Call timeouts | ✓ | ✓ | ✓ | | | ✓ | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| Call cancellation | ✓ | ✓ | ✓ | | | ✓ | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| Concurrent client calls (3) | ✓ | ✓ | ✓ | | ✓ | ✓ | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| Custom middleware | ✓ | ✓ | ✓ | | | ✓ | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| RPC error codes | ✓ | ✓ | ✓ | | ✓ | ✓ | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ Supported features in the UCX transport: -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Flight RPC Feature | C++ | Java | Go | JavaScript | C# | Rust | Julia | Swift | -+============================================+=======+=======+=======+============+=======+=======+=======+=======+ -| All RPC methods | × (4) | | | | | | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Authentication handlers | | | | | | | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Call timeouts | | | | | | | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Call cancellation | | | | | | | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Concurrent client calls | ✓ (5) | | | | | | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Custom middleware | | | | | | | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| RPC error codes | ✓ | | | | | | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| Flight RPC Feature | C++ | Java | Go | JS | C# | Rust | Julia | Swift | ++============================================+=======+=======+=======+====+=======+=======+=======+=======+ +| All RPC methods | ✓ (4) | | | | | | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| Authentication handlers | | | | | | | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| Call timeouts | | | | | | | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| Call cancellation | | | | | | | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| Concurrent client calls | ✓ (5) | | | | | | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| Custom middleware | | | | | | | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| RPC error codes | ✓ | | | | | | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ Notes: @@ -255,55 +257,55 @@ The feature support refers to the client/server libraries only; databases which implement the Flight SQL protocol in turn will support/not support individual features. -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| Feature | C++ | Java | Go | JavaScript | C# | Rust | Julia | Swift | -+============================================+=======+=======+=======+============+=======+=======+=======+=======+ -| BeginSavepoint | ✓ | ✓ | | | | | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| BeginTransaction | ✓ | ✓ | | | | | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| CancelQuery | ✓ | ✓ | | | | | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| ClosePreparedStatement | ✓ | ✓ | ✓ | | ✓ | ✓ | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| CreatePreparedStatement | ✓ | ✓ | ✓ | | ✓ | ✓ | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| CreatePreparedSubstraitPlan | ✓ | ✓ | | | | | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| EndSavepoint | ✓ | ✓ | | | | | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| EndTransaction | ✓ | ✓ | | | | | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| GetCatalogs | ✓ | ✓ | ✓ | | ✓ | ✓ | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| GetCrossReference | ✓ | ✓ | ✓ | | ✓ | ✓ | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| GetDbSchemas | ✓ | ✓ | ✓ | | ✓ | ✓ | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| GetExportedKeys | ✓ | ✓ | ✓ | | ✓ | ✓ | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| GetImportedKeys | ✓ | ✓ | ✓ | | ✓ | ✓ | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| GetPrimaryKeys | ✓ | ✓ | ✓ | | ✓ | ✓ | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| GetSqlInfo | ✓ | ✓ | ✓ | | ✓ | ✓ | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| GetTables | ✓ | ✓ | ✓ | | ✓ | ✓ | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| GetTableTypes | ✓ | ✓ | ✓ | | ✓ | ✓ | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| GetXdbcTypeInfo | ✓ | ✓ | ✓ | | ✓ | ✓ | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| PreparedStatementQuery | ✓ | ✓ | ✓ | | ✓ | ✓ | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| PreparedStatementUpdate | ✓ | ✓ | ✓ | | ✓ | ✓ | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| StatementSubstraitPlan | ✓ | ✓ | | | | | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| StatementQuery | ✓ | ✓ | ✓ | | ✓ | ✓ | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ -| StatementUpdate | ✓ | ✓ | ✓ | | ✓ | ✓ | | | -+--------------------------------------------+-------+-------+-------+------------+-------+-------+-------+-------+ ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| Feature | C++ | Java | Go | JS | C# | Rust | Julia | Swift | ++============================================+=======+=======+=======+====+=======+=======+=======+=======+ +| BeginSavepoint | ✓ | ✓ | | | | | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| BeginTransaction | ✓ | ✓ | | | | | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| CancelQuery | ✓ | ✓ | | | | | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| ClosePreparedStatement | ✓ | ✓ | ✓ | | ✓ | ✓ | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| CreatePreparedStatement | ✓ | ✓ | ✓ | | ✓ | ✓ | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| CreatePreparedSubstraitPlan | ✓ | ✓ | | | | | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| EndSavepoint | ✓ | ✓ | | | | | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| EndTransaction | ✓ | ✓ | | | | | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| GetCatalogs | ✓ | ✓ | ✓ | | ✓ | ✓ | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| GetCrossReference | ✓ | ✓ | ✓ | | ✓ | ✓ | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| GetDbSchemas | ✓ | ✓ | ✓ | | ✓ | ✓ | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| GetExportedKeys | ✓ | ✓ | ✓ | | ✓ | ✓ | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| GetImportedKeys | ✓ | ✓ | ✓ | | ✓ | ✓ | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| GetPrimaryKeys | ✓ | ✓ | ✓ | | ✓ | ✓ | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| GetSqlInfo | ✓ | ✓ | ✓ | | ✓ | ✓ | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| GetTables | ✓ | ✓ | ✓ | | ✓ | ✓ | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| GetTableTypes | ✓ | ✓ | ✓ | | ✓ | ✓ | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| GetXdbcTypeInfo | ✓ | ✓ | ✓ | | ✓ | ✓ | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| PreparedStatementQuery | ✓ | ✓ | ✓ | | ✓ | ✓ | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| PreparedStatementUpdate | ✓ | ✓ | ✓ | | ✓ | ✓ | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| StatementSubstraitPlan | ✓ | ✓ | | | | | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| StatementQuery | ✓ | ✓ | ✓ | | ✓ | ✓ | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ +| StatementUpdate | ✓ | ✓ | ✓ | | ✓ | ✓ | | | ++--------------------------------------------+-------+-------+-------+----+-------+-------+-------+-------+ .. seealso:: The :doc:`./format/FlightSql` specification. @@ -311,18 +313,18 @@ support/not support individual features. C Data Interface ================ -+-----------------------------+-----+--------+---+------+----+------+--------+------+-------+-----+-------+ -| Feature | C++ | Python | R | Rust | Go | Java | C/GLib | Ruby | Julia | C# | Swift | -| | | | | | | | | | | | | -+=============================+=====+========+===+======+====+======+========+======+=======+=====+=======+ -| Schema export | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | | -+-----------------------------+-----+--------+---+------+----+------+--------+------+-------+-----+-------+ -| Array export | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | | -+-----------------------------+-----+--------+---+------+----+------+--------+------+-------+-----+-------+ -| Schema import | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | | -+-----------------------------+-----+--------+---+------+----+------+--------+------+-------+-----+-------+ -| Array import | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | | -+-----------------------------+-----+--------+---+------+----+------+--------+------+-------+-----+-------+ ++-----------------------------+-----+--------+---+------+----+------+--------+------+-------+-----+-------+-----------+ +| Feature | C++ | Python | R | Rust | Go | Java | C/GLib | Ruby | Julia | C# | Swift | nanoarrow | +| | | | | | | | | | | | | | ++=============================+=====+========+===+======+====+======+========+======+=======+=====+=======+===========+ +| Schema export | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | | ✓ | ++-----------------------------+-----+--------+---+------+----+------+--------+------+-------+-----+-------+-----------+ +| Array export | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | | ✓ | ++-----------------------------+-----+--------+---+------+----+------+--------+------+-------+-----+-------+-----------+ +| Schema import | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | | ✓ | ++-----------------------------+-----+--------+---+------+----+------+--------+------+-------+-----+-------+-----------+ +| Array import | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | | ✓ | ++-----------------------------+-----+--------+---+------+----+------+--------+------+-------+-----+-------+-----------+ .. seealso:: The :ref:`C Data Interface <c-data-interface>` specification. @@ -331,14 +333,14 @@ C Data Interface C Stream Interface ================== -+-----------------------------+-----+--------+---+------+----+------+--------+------+-------+-----+-------+ -| Feature | C++ | Python | R | Rust | Go | Java | C/GLib | Ruby | Julia | C# | Swift | -| | | | | | | | | | | | | -+=============================+=====+========+===+======+====+======+========+======+=======+=====+=======+ -| Stream export | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | ✓ | | ✓ | | -+-----------------------------+-----+--------+---+------+----+------+--------+------+-------+-----+-------+ -| Stream import | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | ✓ | | ✓ | | -+-----------------------------+-----+--------+---+------+----+------+--------+------+-------+-----+-------+ ++-----------------------------+-----+--------+---+------+----+------+--------+------+-------+-----+-------+-----------+ +| Feature | C++ | Python | R | Rust | Go | Java | C/GLib | Ruby | Julia | C# | Swift | nanoarrow | +| | | | | | | | | | | | | | ++=============================+=====+========+===+======+====+======+========+======+=======+=====+=======+===========+ +| Stream export | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | ✓ | | ✓ | | ✓ | ++-----------------------------+-----+--------+---+------+----+------+--------+------+-------+-----+-------+-----------+ +| Stream import | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | ✓ | | ✓ | | ✓ | ++-----------------------------+-----+--------+---+------+----+------+--------+------+-------+-----+-------+-----------+ .. seealso:: The :ref:`C Stream Interface <c-stream-interface>` specification. @@ -347,18 +349,18 @@ C Stream Interface Third-Party Data Formats ======================== -+-----------------------------+---------+---------+-------+------------+-------+-------+-------+-------+ -| Format | C++ | Java | Go | JavaScript | C# | Rust | Julia | Swift | -| | | | | | | | | | -+=============================+=========+=========+=======+============+=======+=======+=======+=======+ -| Avro | | R | | | | | | | -+-----------------------------+---------+---------+-------+------------+-------+-------+-------+-------+ -| CSV | R/W | R (2) | R/W | | | R/W | R/W | | -+-----------------------------+---------+---------+-------+------------+-------+-------+-------+-------+ -| ORC | R/W | R (1) | | | | | | | -+-----------------------------+---------+---------+-------+------------+-------+-------+-------+-------+ -| Parquet | R/W | R (2) | R/W | | | R/W | | | -+-----------------------------+---------+---------+-------+------------+-------+-------+-------+-------+ ++-----------------------------+---------+---------+-------+----+-------+-------+-------+-------+ +| Format | C++ | Java | Go | JS | C# | Rust | Julia | Swift | +| | | | | | | | | | ++=============================+=========+=========+=======+====+=======+=======+=======+=======+ +| Avro | | R | | | | | | | ++-----------------------------+---------+---------+-------+----+-------+-------+-------+-------+ +| CSV | R/W | R (2) | R/W | | | R/W | R/W | | ++-----------------------------+---------+---------+-------+----+-------+-------+-------+-------+ +| ORC | R/W | R (1) | | | | | | | ++-----------------------------+---------+---------+-------+----+-------+-------+-------+-------+ +| Parquet | R/W | R (2) | R/W | | | R/W | | | ++-----------------------------+---------+---------+-------+----+-------+-------+-------+-------+ Notes:
