# iceberg-cpp **Repository Path**: mirrors_apache/iceberg-cpp ## Basic Information - **Project Name**: iceberg-cpp - **Description**: Apache Iceberg C++ - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-11-23 - **Last Updated**: 2026-04-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ![Iceberg](https://iceberg.apache.org/assets/images/Iceberg-logo.svg) [![Slack](https://img.shields.io/badge/chat-on%20Slack-brightgreen.svg)](https://apache-iceberg.slack.com/) [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/apache/iceberg-cpp) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) # Apache Iceberg™ C++ C++ implementation of [Apache Iceberg™](https://iceberg.apache.org/). ## Requirements **Required:** - C++23 compliant compiler (GCC 14+, Clang 16+, MSVC 2022+) - CMake 3.25+ or Meson 1.5+ - [Ninja](https://ninja-build.org/) (recommended build backend) **Optional:** - Python 3 and [pre-commit](https://pre-commit.com/) (for linting) ## Quick Start ```bash git clone https://github.com/apache/iceberg-cpp.git cd iceberg-cpp cmake -S . -B build -G Ninja cmake --build build ctest --test-dir build --output-on-failure ``` ## Build with CMake ### Build, Run Tests and Install Core Libraries ```bash cmake -S . -B build -G Ninja -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 ``` To run a specific test suite: ```bash ctest --test-dir build -R schema_test --output-on-failure ``` ### Build and Install Iceberg Bundle Library #### Vendored Apache Arrow (default) ```bash cmake -S . -B build -G Ninja -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 ```bash cmake -S . -B build -G Ninja -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 ``` ### CMake Build Options | Option | Default | Description | |--------|---------|-------------| | `ICEBERG_BUILD_STATIC` | `ON` | Build static library | | `ICEBERG_BUILD_SHARED` | `OFF` | Build shared library | | `ICEBERG_BUILD_TESTS` | `ON` | Build tests | | `ICEBERG_BUILD_BUNDLE` | `ON` | Build the battery-included library | | `ICEBERG_BUILD_REST` | `ON` | Build REST catalog client | | `ICEBERG_BUILD_REST_INTEGRATION_TESTS` | `OFF` | Build REST catalog integration tests | | `ICEBERG_ENABLE_ASAN` | `OFF` | Enable Address Sanitizer | | `ICEBERG_ENABLE_UBSAN` | `OFF` | Enable Undefined Behavior Sanitizer | ## Build with Meson ```bash meson setup builddir meson compile -C builddir meson test -C builddir --timeout-multiplier 0 ``` Meson provides built-in equivalents for several CMake options: - `--default-library=` instead of `ICEBERG_BUILD_STATIC` / `ICEBERG_BUILD_SHARED` - `-Db_sanitize=address,undefined` instead of `ICEBERG_ENABLE_ASAN` / `ICEBERG_ENABLE_UBSAN` - `--libdir`, `--bindir`, `--includedir` for install directories Meson-specific options (configured via `-D