The C++ bindings are not yet published as a package. You need to build from source.
Prerequisites: CMake 3.22+, C++17 compiler, Rust 1.85+, Apache Arrow C++ library
git clone https://github.com/apache/fluss-rust.git cd fluss-rust
Install dependencies:
# macOS brew install cmake arrow # Ubuntu/Debian sudo apt-get install cmake libarrow-dev
If Arrow is not available via package manager, build from source:
git clone https://github.com/apache/arrow.git cd arrow/cpp cmake -B build -DARROW_BUILD_SHARED=ON cmake --build build sudo cmake --install build
Build the C++ bindings:
cd bindings/cpp mkdir -p build && cd build # Debug mode cmake .. # Or Release mode cmake -DCMAKE_BUILD_TYPE=Release .. # Build cmake --build .
This produces:
libfluss_cpp.a (Static library)fluss_cpp_example (Example executable)include/Option 1: CMake FetchContent
include(FetchContent) FetchContent_Declare( fluss-cpp GIT_REPOSITORY https://github.com/apache/fluss-rust.git SOURCE_SUBDIR bindings/cpp ) FetchContent_MakeAvailable(fluss-cpp) target_link_libraries(your_target PRIVATE fluss_cpp)
Option 2: Manual Integration
Copy the build artifacts and configure CMake:
find_package(Arrow REQUIRED) add_library(fluss_cpp STATIC IMPORTED) set_target_properties(fluss_cpp PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/lib/libfluss_cpp.a INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR}/include ) target_link_libraries(your_target PRIVATE fluss_cpp Arrow::arrow_shared ${CMAKE_DL_LIBS} Threads::Threads ) # On macOS, also link these frameworks if(APPLE) target_link_libraries(your_target PRIVATE "-framework CoreFoundation" "-framework Security" ) endif()
Option 3: Subdirectory
add_subdirectory(vendor/fluss-rust/bindings/cpp) target_link_libraries(your_target PRIVATE fluss_cpp)