Skip to content

Commit 7434737

Browse files
committed
fix: remove rust
fix: support hashing of lists of fixed types and strings feat: add blake3 support fix: update readme feat: add crypto_hash_agg function
1 parent 93fd684 commit 7434737

File tree

15 files changed

+2050
-990
lines changed

15 files changed

+2050
-990
lines changed

.github/workflows/MainDistributionPipeline.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,4 @@ jobs:
2121
duckdb_version: main
2222
ci_tools_version: main
2323
extension_name: crypto
24-
enable_rust: true
25-
exclude_archs: "windows_amd64_rtools;windows_amd64_mingw"
24+
exclude_archs: "wasm_mvp;wasm_eh;wasm_threads;"

CMakeLists.txt

Lines changed: 13 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -1,75 +1,8 @@
11
cmake_minimum_required(VERSION 3.5)
22

3-
set(CORROSION_VERBOSE_OUTPUT ON)
4-
set(CMAKE_CXX_STANDARD 11)
3+
set(CMAKE_CXX_STANDARD 14)
54
set(CMAKE_CXX_STANDARD_REQUIRED 1)
65

7-
execute_process(
8-
COMMAND rustup target list --installed
9-
OUTPUT_VARIABLE RUST_TARGETS
10-
)
11-
# Propagate arch to rust build for CI
12-
set(Rust_CARGO_TARGET "")
13-
if("${OS_NAME}" STREQUAL "linux")
14-
if ("${OS_ARCH}" STREQUAL "arm64")
15-
set(Rust_CARGO_TARGET "aarch64-unknown-linux-gnu")
16-
elseif("${CMAKE_CXX_COMPILER}" MATCHES "aarch64")
17-
set(Rust_CARGO_TARGET ${RUST_ENV_VARS} CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc)
18-
set(Rust_CARGO_TARGET "aarch64-unknown-linux-gnu")
19-
else()
20-
string(FIND "${RUST_TARGETS}" "musl" MUSL_TARGET_FOUND)
21-
if(NOT MUSL_TARGET_FOUND EQUAL -1)
22-
set(Rust_CARGO_TARGET "x86_64-unknown-linux-musl")
23-
else()
24-
set(Rust_CARGO_TARGET "x86_64-unknown-linux-gnu")
25-
endif()
26-
endif()
27-
elseif("${OS_NAME}" STREQUAL "osx")
28-
if ("${OSX_BUILD_ARCH}" STREQUAL "arm64")
29-
set(Rust_CARGO_TARGET "aarch64-apple-darwin")
30-
elseif ("${OSX_BUILD_ARCH}" STREQUAL "x86_64")
31-
set(Rust_CARGO_TARGET "x86_64-apple-darwin")
32-
elseif ("${OS_ARCH}" STREQUAL "arm64")
33-
set(Rust_CARGO_TARGET "aarch64-apple-darwin")
34-
endif()
35-
elseif(WIN32)
36-
if (MINGW AND "${OS_ARCH}" STREQUAL "arm64")
37-
set(Rust_CARGO_TARGET "aarch64-pc-windows-gnu")
38-
elseif (MINGW AND "${OS_ARCH}" STREQUAL "amd64")
39-
set(Rust_CARGO_TARGET "x86_64-pc-windows-gnu")
40-
elseif (MSVC AND "${OS_ARCH}" STREQUAL "arm64")
41-
set(Rust_CARGO_TARGET "aarch64-pc-windows-msvc")
42-
elseif (MSVC AND "${OS_ARCH}" STREQUAL "amd64")
43-
set(Rust_CARGO_TARGET "x86_64-pc-windows-msvc")
44-
endif()
45-
endif()
46-
47-
execute_process(
48-
COMMAND rustup target list --installed
49-
OUTPUT_VARIABLE RUST_TARGETS
50-
)
51-
string(FIND "${RUST_TARGETS}" "wasm32-unknown-emscripten" WASM_TARGET_FOUND)
52-
53-
if (NOT WASM_TARGET_FOUND EQUAL -1)
54-
set(Rust_CARGO_TARGET "wasm32-unknown-emscripten")
55-
endif()
56-
57-
58-
include(FetchContent)
59-
60-
FetchContent_Declare(
61-
Corrosion
62-
GIT_REPOSITORY https://github.com/corrosion-rs/corrosion.git
63-
GIT_TAG v0.5.2
64-
)
65-
# Set any global configuration variables such as `Rust_TOOLCHAIN` before this line!
66-
FetchContent_MakeAvailable(Corrosion)
67-
68-
# Import targets defined in a package or workspace manifest `Cargo.toml` file
69-
corrosion_import_crate(MANIFEST_PATH "${CMAKE_SOURCE_DIR}/../duckdb_crypto_rust/Cargo.toml"
70-
CRATES "duckdb_crypto_rust"
71-
)
72-
736
# Set extension name here
747
set(TARGET_NAME crypto)
758

@@ -80,20 +13,25 @@ project(${TARGET_NAME})
8013

8114
include_directories(src/include)
8215

83-
set(EXTENSION_SOURCES src/crypto_extension.cpp
84-
src/query_farm_telemetry.cpp)
16+
# Find OpenSSL
17+
find_package(OpenSSL REQUIRED)
18+
find_package(blake3 CONFIG REQUIRED)
19+
20+
set(EXTENSION_SOURCES
21+
src/crypto_extension.cpp
22+
src/crypto_hash.cpp
23+
src/query_farm_telemetry.cpp
24+
)
8525

8626
build_static_extension(${TARGET_NAME} ${EXTENSION_SOURCES})
8727
build_loadable_extension(${TARGET_NAME} " " ${EXTENSION_SOURCES})
8828

89-
get_target_property(fake_includes duckdb_crypto_rust INCLUDE_DIRECTORIES)
90-
91-
target_link_libraries(${EXTENSION_NAME} duckdb_crypto_rust-static)
92-
target_link_libraries(${LOADABLE_EXTENSION_NAME} duckdb_crypto_rust)
29+
# Link OpenSSL to both static and loadable extensions
30+
target_link_libraries(${EXTENSION_NAME} OpenSSL::SSL OpenSSL::Crypto BLAKE3::blake3)
31+
target_link_libraries(${LOADABLE_EXTENSION_NAME} OpenSSL::SSL OpenSSL::Crypto BLAKE3::blake3)
9332

9433
install(
9534
TARGETS ${EXTENSION_NAME}
9635
EXPORT "${DUCKDB_EXPORT_SET}"
9736
LIBRARY DESTINATION "${INSTALL_LIB_DIR}"
9837
ARCHIVE DESTINATION "${INSTALL_LIB_DIR}")
99-

Makefile

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,4 @@ EXT_NAME=crypto
55
EXT_CONFIG=${PROJ_DIR}extension_config.cmake
66

77
# Include the Makefile from extension-ci-tools
8-
include extension-ci-tools/makefiles/duckdb_extension.Makefile
9-
10-
rust_binding_headers:
11-
cd duckdb_crypto_rust && cbindgen --config ./cbindgen.toml --crate duckdb_crypto_rust --output ../src/include/rust.h
8+
include extension-ci-tools/makefiles/duckdb_extension.Makefile

0 commit comments

Comments
 (0)