Skip to content

apache/iceberg-cpp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

829dc65 · Mar 27, 2025

History

31 Commits
Mar 24, 2025
Jan 30, 2025
Mar 27, 2025
Feb 3, 2025
Mar 27, 2025
Mar 27, 2025
Mar 27, 2025
Jan 24, 2025
Dec 12, 2024
Jan 30, 2025
Jan 10, 2025
Dec 23, 2024
Mar 27, 2025
Feb 26, 2025
Feb 26, 2025
Mar 27, 2025
Dec 14, 2024

Apache Iceberg™ C++

C++ implementation of Apache Iceberg™.

Requirements

  • CMake 3.25 or higher
  • C++20 compliant compiler

Build

Build, Run Test and Install Core Libraries

cd iceberg-cpp
cmake -S . -B build -DCMAKE_INSTALL_PREFIX=/path/to/install -DICEBERG_BUILD_STATIC=ON -DICEBERG_BUILD_SHARED=ON
cmake --build build
ctest --test-dir build --output-on-failure
cmake --install build

Build and Install Iceberg Bundle Library

Vendored Apache Arrow (default)

cmake -S . -B build -DCMAKE_INSTALL_PREFIX=/path/to/install -DICEBERG_BUILD_BUNDLE=ON
cmake --build build
ctest --test-dir build --output-on-failure
cmake --install build

Provided Apache Arrow

cmake -S . -B build -DCMAKE_INSTALL_PREFIX=/path/to/install -DCMAKE_PREFIX_PATH=/path/to/arrow -DICEBERG_BUILD_BUNDLE=ON
cmake --build build
ctest --test-dir build --output-on-failure
cmake --install build

Build Examples

After installing the core libraries, you can build the examples:

cd iceberg-cpp/example
cmake -S . -B build -DCMAKE_PREFIX_PATH=/path/to/install
cmake --build build

If you are using provided Apache Arrow, you need to include /path/to/arrow in CMAKE_PREFIX_PATH as below.

cmake -S . -B build -DCMAKE_PREFIX_PATH="/path/to/install;/path/to/arrow"

Contribute

Apache Iceberg is an active open-source project, governed under the Apache Software Foundation (ASF). Iceberg-cpp is open to people who want to contribute to it. Here are some ways to get involved:

The Apache Iceberg community is built on the principles described in the Apache Way and all who engage with the community are expected to be respectful, open, come with the best interests of the community in mind, and abide by the Apache Foundation Code of Conduct.

Linting

Install the python package pre-commit and run once pre-commit install.

pip install pre-commit
pre-commit install

This will setup a git pre-commit-hook that is executed on each commit and will report the linting problems. To run all hooks on all files use pre-commit run -a.

License

Licensed under the Apache License, Version 2.0