https://github.com/apache/iceberg-cpp
Apache Iceberg C++
https://github.com/apache/iceberg-cpp
apache iceberg
Last synced: 3 months ago
JSON representation
Apache Iceberg C++
- Host: GitHub
- URL: https://github.com/apache/iceberg-cpp
- Owner: apache
- License: apache-2.0
- Created: 2024-11-22T08:45:21.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-07-07T07:55:12.000Z (3 months ago)
- Last Synced: 2025-07-08T02:05:42.279Z (3 months ago)
- Topics: apache, iceberg
- Language: C++
- Homepage: https://iceberg.apache.org/
- Size: 445 KB
- Stars: 96
- Watchers: 20
- Forks: 40
- Open Issues: 23
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-apache-iceberg - apache/iceberg-cpp - C++ implementation (Official Resources / GitHub Repositories)
README
# Apache Iceberg™ C++
C++ implementation of [Apache Iceberg™](https://iceberg.apache.org/).
## Requirements
- CMake 3.25 or higher
- C++23 compliant compiler## Build
### Build, Run Test and Install Core Libraries
```bash
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)
```bash
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
```bash
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:
```bash
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.
```bash
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:
- Submit [Issues](https://github.com/apache/iceberg-cpp/issues/new) for bug report or feature requests.
- Discuss at [dev mailing list](mailto:dev@iceberg.apache.org) ([subscribe]() / [unsubscribe]() / [archives](https://lists.apache.org/list.html?dev@iceberg.apache.org))
- Talk to the community directly at [Slack #cpp channel](https://join.slack.com/t/apache-iceberg/shared_invite/zt-1zbov3k6e-KtJfoaxp97YfX6dPz1Bk7A).The Apache Iceberg community is built on the principles described in the [Apache Way](https://www.apache.org/theapacheway/index.html) 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](https://www.apache.org/foundation/policies/conduct.html).
### 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](http://www.apache.org/licenses/LICENSE-2.0)