Extension types for the sparrow library
sparrow-extensions provides additional array types and extension implementations for the sparrow library, following the Apache Arrow Canonical Extensions specification.
sparrow-extensions requires a modern C++ compiler supporting C++20.
- UUID Array: Arrow-compatible array for storing UUID values as 16-byte fixed-width binary according to the
arrow.uuidextension type specification.
sparrow-extensions has a few dependencies that you can install in a mamba environment:
mamba env create -f environment-dev.yml
mamba activate sparrow-extensionsYou can then create a build directory, and build the project and install it with cmake:
mkdir build
cd build
cmake .. \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX \
-DSPARROW_EXTENSIONS_BUILD_TESTS=ON
make installCompilers:
- Clang 18 or higher
- GCC 11.2 or higher
- Apple Clang 16 or higher
- MSVC 19.41 or higher
#include "sparrow_extensions/uuid_array.hpp"
namespace spx = sparrow_extensions;
// Create a UUID array using the Arrow extension type
spx::uuid_array uuids = /* ... */;
// UUIDs are stored as 16-byte fixed-width binary values
// with extension metadata "ARROW:extension:name" = "arrow.uuid"- sparrow - C++20 implementation of the Apache Arrow Columnar Format
This software is licensed under the Apache License 2.0. See the LICENSE file for details.