diff options
Diffstat (limited to 'valkey-search.spec')
-rw-r--r-- | valkey-search.spec | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/valkey-search.spec b/valkey-search.spec new file mode 100644 index 0000000..b2b3dd8 --- /dev/null +++ b/valkey-search.spec @@ -0,0 +1,109 @@ +# remirepo/fedora spec file for valkey-search +# +# SPDX-FileCopyrightText: Copyright 2025 Remi Collet +# SPDX-License-Identifier: CECILL-2.1 +# http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt +# +# Please, preserve the changelog entries +# + +%global cfgname search.conf +%global libname search.so +# Github forge +%global gh_vend valkey-io +%global gh_proj valkey-search +%global forgeurl https://github.com/%{gh_vend}/%{gh_proj} +#global commit afe5de4ce52bb2b80af565a6f297bf330a65d0d8 +%global tag %{version} + +Name: valkey-search +Version: 1.0.1 +%forgemeta +Release: 1%{?dist} +Summary: Vector Similarity Search engine +# this module is BSD-3-Clause +# RapidJSON is MIT +License: BSD-3-Clause AND MIT +URL: %{forgeurl} +Source0: %{forgesource} +# see submodules/CMakeLists.txt +Source1: makedeps.sh +Source2: %{name}-deps-%{version}.tgz + +# fix check for cached sources +Patch0: %{name}-offline.patch + +BuildRequires: valkey-devel >= 8.0 +BuildRequires: ninja-build +BuildRequires: cmake +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: openssl-devel +%if 0%{?fedora} >= 41 +BuildRequires: openssl-devel-engine +%endif + +Requires: valkey(modules_abi)%{?_isa} = %{valkey_modules_abi} +Requires: valkey >= 8.0 +Supplements: valkey + +Provides: bundled(highwayhash) +Provides: bundled(googletest) +Provides: bundled(grpc) = 1.70.1 + + + +%description +valkey-search (BSD-3-Clause), provided as a Valkey module, +is a high-performance Vector Similarity Search engine optimized +for AI-driven workloads. It delivers single-digit millisecond +latency and high QPS, capable of handling billions of vectors +with over 99% recall. + +valkey-search allows users to create indexes and perform similarity +searches, incorporating complex filters. It supports Approximate Nearest +Neighbor (ANN) search with HNSW and exact matching using K-Nearest Neighbors +(KNN). Users can index data using either Valkey Hash or Valkey-JSON data types. + +While valkey-search currently focuses on Vector Search, its goal is to extend +Valkey into a full-fledged search engine, supporting Full Text Search and +additional indexing options. + + +%prep +%setup -q -n %{gh_proj}-%{version} -a2 +%patch -P0 -p1 -b .offline + +: Configuration file +cat << EOF | tee %{cfgname} +# %{gh_proj} +loadmodule %{valkey_modules_dir}/%{libname} +EOF + +cp .build-release/.deps/grpc/LICENSE LICENSE.grpc +cp .build-release/.deps/highwayhash/LICENSE LICENSE.highwayhash +cp .build-release/.deps/googletest/LICENSE LICENSE.googletest + +: submodules list +grep -E '(github.com|"v)' submodules/CMakeLists.txt + + +%build +./build.sh --verbose + + +%install +install -Dpm755 .build-release/*%{libname} %{buildroot}%{valkey_modules_dir}/%{libname} +install -Dpm640 %{cfgname} %{buildroot}%{valkey_modules_cfg}/%{cfgname} + + +%files +%license LICENSE* +%doc *.md +%attr(0640, valkey, root) %config(noreplace) %{valkey_modules_cfg}/%{cfgname} +%{valkey_modules_dir}/%{libname} + + +%changelog +* Fri Sep 5 2025 Remi Collet <remi@remirepo.net> - 1.0.1-1 +- initial package |