Skip to content

Add geds-rs, Rust bindings for GEDS #116

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@ github_*

CMakeLists.txt.user
compile_commands.json
/build/
3 changes: 2 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ option(USE_EXTERNAL_GRPC "Use external GRPC (set GRPC_INSTALL_DIR env variable a
option(HAVE_TESTS "Enable tests" ON)
option(HAVE_PYTHON_BINDINGS "Enable python bindings" ON)
option(HAVE_JAVA_BINDINGS "Enable Java bindings (SET JAVA_HOME env variable accordingly)." ON)
option(HAVE_RUST_BINDINGS "Enable Rust bindings" ON)
option(HAVE_RDMA_SUPPORT "Supports RDMA" OFF)
option(HAVE_DEFAULT_BUCKET "Creates a default (default) bucket." ON)
option(HAVE_PROMETHEUS_HISTOGRAM_BUCKETS "Enable Prometheus Histogram Buckets." OFF)
Expand Down Expand Up @@ -312,7 +313,7 @@ add_custom_target(build-all
metadataserver
test_metadataserver
pygeds

geds_rs
geds_java
geds_jar
)
4 changes: 4 additions & 0 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,7 @@ endif()
if(HAVE_JAVA_BINDINGS)
add_subdirectory(java)
endif()

if(HAVE_RUST_BINDINGS)
add_subdirectory(rust)
endif()
124 changes: 124 additions & 0 deletions src/rust/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
#
# Copyright 2022- IBM Inc. All rights reserved
# SPDX-License-Identifier: Apache-2.0
#

if (NOT HAVE_RUST_BINDINGS)
message(error "This module requires the Rust bindings flag.")
else ()
message(STATUS "Installing Rust library.")
endif ()

# Install Rust library files
install(FILES build.rs Cargo.toml Cargo.lock
COMPONENT geds
DESTINATION rust/
COMPONENT geds)

install(DIRECTORY "${CMAKE_SOURCE_DIR}/src/rust/src" DESTINATION rust/ COMPONENT geds)

# GEDS libgeds headers
install(DIRECTORY "${CMAKE_SOURCE_DIR}/src/libgeds/"
COMPONENT geds
DESTINATION "rust/include"
FILES_MATCHING
PATTERN "*.h"
)

# GEDS utility headers
install(DIRECTORY "${CMAKE_SOURCE_DIR}/src/utility/"
COMPONENT geds
DESTINATION "rust/include"
FILES_MATCHING
PATTERN "*.h"
)

# GEDS common headers
install(DIRECTORY "${CMAKE_SOURCE_DIR}/src/common/"
COMPONENT geds
DESTINATION "rust/include"
FILES_MATCHING
PATTERN "*.h"
)

# GEDS protos headers
install(DIRECTORY "${CMAKE_SOURCE_DIR}/src/protos/"
COMPONENT geds
DESTINATION "rust/include"
FILES_MATCHING
PATTERN "*.h"
)

# GEDS s3 headers
install(DIRECTORY "${CMAKE_SOURCE_DIR}/src/s3/"
COMPONENT geds
DESTINATION "rust/include"
FILES_MATCHING
PATTERN "*.h"
)

# GEDS statistics headers
install(DIRECTORY "${CMAKE_SOURCE_DIR}/src/statistics/"
COMPONENT geds
DESTINATION "rust/include"
FILES_MATCHING
PATTERN "*.h"
)

# GEDS gens headers
install(DIRECTORY "${CMAKE_BINARY_DIR}/gens/"
COMPONENT geds
DESTINATION "rust/include"
FILES_MATCHING
PATTERN "*.h"
PATTERN "*.inc"
)

# grpc headers
install(DIRECTORY "${CMAKE_BINARY_DIR}/_deps/grpc-src/include/"
COMPONENT geds
DESTINATION "rust/include"
FILES_MATCHING
PATTERN "*.h"
PATTERN "*.inc"
)

# abseil headers
install(DIRECTORY "${CMAKE_BINARY_DIR}/_deps/grpc-src/third_party/abseil-cpp/"
COMPONENT geds
DESTINATION "rust/include"
FILES_MATCHING
PATTERN "*.h"
PATTERN "*.inc"
)

# protobuf headers
install(DIRECTORY "${CMAKE_BINARY_DIR}/_deps/grpc-src/third_party/protobuf/src/"
COMPONENT geds
DESTINATION "rust/include"
FILES_MATCHING
PATTERN "*.h"
PATTERN "*.inc"
)

# boost headers
install(DIRECTORY "${BOOST_ROOT}/include/boost"
COMPONENT geds
DESTINATION "rust/include"
FILES_MATCHING
PATTERN "*.hpp"
PATTERN "*.ipp"
PATTERN "*.h"
)

# AWS S3 SDK headers
install(DIRECTORY "${AWSSDK_ROOT}/include"
COMPONENT geds
DESTINATION "rust/include"
FILES_MATCHING
PATTERN "*.hpp"
PATTERN "*.ipp"
PATTERN "*.h"
PATTERN "*.inc"
PATTERN "*.inl"
)
233 changes: 233 additions & 0 deletions src/rust/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading