Skip to main content

sqlite-hybrid-search

Ultra-fast, in-process hybrid search & agent memory engine in C++17 with Python bindings.

License: MIT C++17 Python PyPI

Drop it inside an app to give a local LLM two things it lacks: knowledge of your private data (RAG) and memory that survives across sessions — with no vector database to run and no cloud. SQLite is the source of truth; the usearch HNSW graph is persisted to a .usearch sidecar and memory-loaded on open, so startup is instant regardless of corpus size.


Why this exists

Embedded / zero-service One process, one SQLite file plus a .usearch sidecar. No Docker, no daemon, no port. A query is a function call — sub-millisecond for dense search (see benchmarks).
Instant startup The vector index is loaded from disk, not rebuilt — ~40 ms to open a 100k-chunk store, versus ~15 s to reconstruct it from SQLite.
Hybrid retrieval Dense vector search (usearch, cosine HNSW) + sparse keyword search (SQLite FTS5 / BM25), fused by Reciprocal Rank Fusion (RRF, k=60). Rank-based fusion — no score normalisation, no per-query tuning.
Agent memory Exponential recency decay — score × e^(−λ·age_days) — so a fresher, slightly-less-similar memory can outrank a stale one. λ = 0 is an exact no-op.
Explainable search_explained() returns the full per-result score trail: dense distance & rank, BM25 score & rank, fused score, recency factor, decayed score.
Bring your own embeddings The core takes caller-supplied vectors and computes nothing. An optional built-in embedder (ONNX Runtime, e.g. all-MiniLM-L6-v2) is layered on top for a text-in path.

Install

pip install sqlite-hybrid-search

Prebuilt wheels cover Linux x86-64 and macOS (Apple Silicon), CPython 3.9–3.13. On any other platform pip builds from the sdist — that needs the toolchain in From source below.

From source (other platforms / development)

You need a C++17 toolchain, CMake ≥ 3.24, Python ≥ 3.9 with venv, and SQLite (with FTS5 — the default on mainstream builds). usearch and GoogleTest are fetched automatically.

git clone https://github.com/ashray-00/sqlite-hybrid-search
cd sqlite-hybrid-search
python3 -m venv .venv && .venv/bin/pip install -e .

Dependencies:

macOS (Homebrew) Debian / Ubuntu Fedora / RHEL Arch
Toolchain + CMake xcode-select --install
brew install cmake
sudo apt install build-essential cmake python3-venv sudo dnf install gcc-c++ cmake python3-devel sudo pacman -S base-devel cmake
SQLite brew install sqlite sudo apt install libsqlite3-dev sudo dnf install sqlite-devel sudo pacman -S sqlite
  • macOS only: Homebrew's sqlite is keg-only, so configure the C++ build with -DCMAKE_PREFIX_PATH=/opt/homebrew (the CMake project also autodetects it via brew --prefix). On Linux the system SQLite is found with no extra flags.
  • Ubuntu 22.04 ships CMake 3.22; either .venv/bin/pip install "cmake>=3.24" or add the Kitware APT repo.

Optional built-in ONNX embedder. Without ONNX Runtime the engine still builds and every caller-supplied-vector path works unchanged; only load_embedding_model() / add_text() / search_text() are unavailable.

Install ONNX Runtime
macOS brew install onnxruntime
Linux Download a release from microsoft/onnxruntime (onnxruntime-linux-x64-*.tgz), then sudo cp -r onnxruntime-linux-x64-*/include/* /usr/local/include/ and sudo cp -rP onnxruntime-linux-x64-*/lib/* /usr/local/lib/ && sudo ldconfig. Or point CMake at it directly: -DONNXRUNTIME_INCLUDE_DIR=<dir> -DONNXRUNTIME_LIBRARY=<dir>/libonnxruntime.so.

Quickstart (Python)

import sqlite_hybrid_search

engine = sqlite_hybrid_search.Engine("memory.sqlite3", dim=3)

# Ingest documents with caller-supplied embeddings (one vector per document).
engine.add(
    documents=[
        {"id": "home", "text": "I live in Munich, Germany."},
        {"id": "pet",  "text": "My cat is named Pixel."},
    ],
    embeddings=[[1.0, 0.0, 0.0], [0.0, 1.0, 0.0]],
)

# Hybrid search: dense vector + BM25 keyword, RRF-fused.
hits = engine.search_hybrid("Where do I live?", [1.0, 0.0, 0.0], top_k=2)
print(hits[0]["document_id"], hits[0]["score"])          # -> home 0.0328

# Memory retrieval: same, discounted by recency (decay_lambda=0 disables it).
recall = engine.search_memory("Where do I live?", [1.0, 0.0, 0.0], top_k=2, decay_lambda=0.1)

# Full score breakdown for one result.
trail = engine.search_explained("Where do I live?", [1.0, 0.0, 0.0], top_k=1)[0]
print(trail["dense_rank"], trail["sparse_rank"], trail["fused_score"], trail["recency_factor"])

Per-chunk timestamps (so recency decay can actually reorder results) are set through the native sqlite_hybrid_search._sqlite_hybrid_search_ext types — see tests/test_memory_search.py.

Quickstart (CLI)

The hybrid-search console script chunks a folder of .txt files into an index in the current directory. It uses a deterministic hashing stand-in for embeddings unless you pass --model / --model-dim.

$ hybrid-search ingest ./docs
Ingested 2 document(s), 2 chunk(s), into /path/to/cwd/.hybrid_search.sqlite3

$ hybrid-search query "where do I live" --decay 0.1
1. [notes.txt] (score=0.0328) I live in Munich. My office is near the river.
2. [work.txt] (score=0.0161) The quarterly report is due on Friday.

$ hybrid-search query "where do I live" --decay 0.1 --explain    # full score trail

Empirical benchmarks (verified)

Reproduce with python benchmarks/run_eval.py; full method and raw data in BENCHMARKS.md and benchmarks/results.json. Machine: Apple Silicon (macOS arm64), single thread, embedding dim 64, 100 labelled queries.

Read the corpus honestly. It is synthetic (a Zipf-distributed pseudo-word vocabulary), and the dense column uses a 64-dim hashed bag-of-words, not a trained model — treat it as a floor. sparse gets a clean per-query exact-match cue, so read its perfect score as an upper bound. Latency and memory transfer directly. A real BEIR run with a trained embedder is tracked follow-up work.

Retrieval quality (Recall@10 / nDCG@10)

Approach 1k 10k 100k
Dense only 1.000 / 0.987 0.990 / 0.947 0.883 / 0.752
Sparse only (BM25) 1.000 / 1.000 1.000 / 1.000 1.000 / 1.000
Hybrid (RRF) 1.000 / 1.000 1.000 / 1.000 1.000 / 0.993
Hybrid + recency decay 1.000 / 1.000 1.000 / 1.000 1.000 / 1.000

Hybrid recovers the recall and ranking dense loses at scale (1.000 / 0.993 vs 0.883 / 0.752 at 100k) — RRF lets the BM25 side carry the query when the vector side weakens.

Latency (warm cache, single thread)

Approach 1k p50 / p99 100k p50 / p99 100k throughput
Dense 0.092 / 0.103 ms 0.185 / 0.334 ms 5,209 q/s
Hybrid 0.169 / 0.192 ms 6.7 / 8.0 ms 148 q/s

Dense stays sub-0.2 ms p50 at 100k. Hybrid stays single-digit ms and grows with corpus size (FTS5 posting-list merge). The agent-memory read (hybrid_decay) is ~5× slower — a per-candidate created_at lookup that's next on the optimisation list.

Startup: instant, disk-backed index

The usearch graph is serialised to a <db>.usearch sidecar and memory-loaded on the next open, instead of being rebuilt from SQLite:

1k 10k 100k
Index load on open 0.6 ms 3.0 ms ~40 ms
(previously: rebuild from SQLite) 40 ms 0.7 s 14.6 s

SQLite stays authoritative — a missing, truncated, or out-of-sync sidecar is rejected and the engine rebuilds transparently.

Memory & storage footprint

1k 10k 100k
SQLite on disk 0.59 MB 5.4 MB 55 MB
.usearch sidecar ~0.5 MB ~4 MB ~41 MB
Peak RSS (Python-driven) 36 MB 79 MB 431 MB

The native C++ cross-check (benchmarks/run_benchmarks.cpp) puts the engine-only peak RSS at ~37 MB for 20,000 documents — most of the Python-driven figure is the benchmark driver holding the corpus, not the engine.


Comparison

sqlite-hybrid-search sqlite-vec + glue ChromaDB Qdrant / Milvus / Weaviate
Deployment in-process library, 1 file in-process (SQLite ext) embedded lib or server separate server / cluster
Process to run none none none (embedded) / one (server) one+
Dense + sparse hybrid built in (RRF) DIY (wire up FTS5 + fusion) dense-first built in (server-side)
Recency / memory semantics built in (search_memory) DIY DIY DIY (metadata + custom scoring)
Score-trail / explainability search_explained() DIY limited varies
Text + metadata storage SQLite (authoritative) second table you design built in built in
Chunking token-window built in DIY some DIY / integrations
Vector-index persistence .usearch sidecar, auto-managed rows in SQLite persisted persisted
Ops surface none none small real (scaling, backups, upgrades)
Best fit desktop / CLI / edge agents, local-first, privacy you already live in SQLite Python RAG prototypes multi-tenant, large-scale, networked

Reach for a dedicated vector DB instead if you need horizontal scale, multi-writer concurrency, or sub-10 ms keyword search over millions of documents.


C++ integration

The public header exposes no usearch or SQLite types (Pimpl idiom); the only hard dependency is SQLite (usearch is fetched by CMake). The C++ symbols live in the retrieval_engine namespace (header path retrieval_engine/) — an internal name kept stable across the Python-package rename.

include(FetchContent)
FetchContent_Declare(sqlite_hybrid_search
    GIT_REPOSITORY https://github.com/ashray-00/sqlite-hybrid-search
    GIT_TAG main)
FetchContent_MakeAvailable(sqlite_hybrid_search)

target_link_libraries(your_target PRIVATE sqlite_hybrid_search::core)
#include "retrieval_engine/retrieval_engine.hpp"

retrieval_engine::RetrievalEngine engine("memory.sqlite3", /*dim=*/384);

retrieval_engine::DocumentInput doc;
doc.document_id = "home";
doc.chunks.push_back({ "I live in Munich.", embedding /*std::vector<float>*/, 0, 4 });
engine.add_documents({ doc });

auto hits = engine.search_hybrid("Where do I live?", query_vec, /*k=*/5);
auto memory = engine.search_memory("Where do I live?", query_vec, /*k=*/5, /*decay_lambda=*/0.1f);

One instance is safe to share across threads under a single-writer / concurrent-reader model, with no external locking: search_* / embed / chunk_count run in parallel (each on its own read-only SQLite connection against a WAL snapshot), while add_documents / add_text / load_embedding_model take an exclusive lock. Concurrent readers are capped at std::thread::hardware_concurrency() — an extra reader blocks until one returns. See ADR-11.

The database runs in WAL mode, so <db>-wal / <db>-shm files appear alongside it — back them up together, or checkpoint first.


Project layout

core/        C++17 engine (chunking, dense index, FTS5, RRF fusion, recency decay)
bindings/    nanobind extension module
python/      sqlite_hybrid_search package (friendly wrapper + `hybrid-search` CLI)
benchmarks/  reproducible recall / latency / memory harness
docs/        architecture decision records + development log

Building & testing

# Linux
cmake -B build && cmake --build build

# macOS (Homebrew SQLite / ONNX Runtime live under /opt/homebrew)
cmake -B build -DCMAKE_PREFIX_PATH=/opt/homebrew && cmake --build build

ctest --test-dir build --output-on-failure      # C++ suite
.venv/bin/pytest                                 # Python + CLI suite

Roadmap

  • Batched recency lookup. search_memory fetches each candidate's created_at with its own query; one batched lookup removes the hybrid_decay latency gap.
  • Real retrieval eval. A BEIR run (SciFact / NFCorpus) with a trained ONNX embedder, alongside the mechanism benchmark.
  • Wider wheels. Windows and Linux aarch64.

Contributing

Issues and pull requests welcome. The project follows a strict TDD workflow (failing test first, then implementation, then an independent review pass) and enforces formatting with .clang-format (C++) and ruff (Python). Run both test suites before opening a PR. Design rationale is recorded as ADRs in docs/DECISIONS.md.

License

MIT © 2026 Ashray Adhikari

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sqlite_hybrid_search-0.2.0.tar.gz (112.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

sqlite_hybrid_search-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

sqlite_hybrid_search-0.2.0-cp313-cp313-macosx_11_0_arm64.whl (159.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

sqlite_hybrid_search-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

sqlite_hybrid_search-0.2.0-cp312-cp312-macosx_11_0_arm64.whl (159.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

sqlite_hybrid_search-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

sqlite_hybrid_search-0.2.0-cp311-cp311-macosx_11_0_arm64.whl (160.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

sqlite_hybrid_search-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

sqlite_hybrid_search-0.2.0-cp310-cp310-macosx_11_0_arm64.whl (160.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

sqlite_hybrid_search-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

sqlite_hybrid_search-0.2.0-cp39-cp39-macosx_11_0_arm64.whl (156.4 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file sqlite_hybrid_search-0.2.0.tar.gz.

File metadata

  • Download URL: sqlite_hybrid_search-0.2.0.tar.gz
  • Upload date:
  • Size: 112.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for sqlite_hybrid_search-0.2.0.tar.gz
Algorithm Hash digest
SHA256 d9cd9efc8831e2ecca8db85619f0496f2b03918368f1fd3b3407c763166cde79
MD5 9c6c296c769ea701813d9347854edab4
BLAKE2b-256 d3f19debceddfc5f525bc35721aff1171f6308a51148f3d69943269fec1613ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for sqlite_hybrid_search-0.2.0.tar.gz:

Publisher: release.yml on ashray-00/sqlite-hybrid-search

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sqlite_hybrid_search-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for sqlite_hybrid_search-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3e8c9f7ade0d393bddea4b642a29b29072faa4d90db36fd30f304e7d87c1b1a9
MD5 b0039016022639032e589d541e78a9d1
BLAKE2b-256 d9fc398b9046ba4cf42b86e1fd63c6d0dda70bc9d6517a7c5fab58dbeb8563fc

See more details on using hashes here.

Provenance

The following attestation bundles were made for sqlite_hybrid_search-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on ashray-00/sqlite-hybrid-search

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sqlite_hybrid_search-0.2.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sqlite_hybrid_search-0.2.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 951c968cb0a6c97cc0729457b8a5e0f359d71a82ba6a005fc875661f0174508a
MD5 09a1de9f20201e97c6d0b9cc6d0e7b40
BLAKE2b-256 ef7128d238cc0c5a5b63af260f95383b394ab963eeb72ae7fb392b2009e297c5

See more details on using hashes here.

Provenance

The following attestation bundles were made for sqlite_hybrid_search-0.2.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on ashray-00/sqlite-hybrid-search

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sqlite_hybrid_search-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for sqlite_hybrid_search-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6e2feacc61ec15603ed5b830890801017b6b0ac6807b6b5c355ca7578e2fa504
MD5 c04c795f28521618bf86c373a779c7b8
BLAKE2b-256 a867ee64b4b0bac58382e5ce565ecbb7bf2aaa0507015fbc9d89ff07642324a0

See more details on using hashes here.

Provenance

The following attestation bundles were made for sqlite_hybrid_search-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on ashray-00/sqlite-hybrid-search

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sqlite_hybrid_search-0.2.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sqlite_hybrid_search-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a8a88b9a5f2340b35ca013dae8fbc80d729f243834f4fec221cf4419cff4830e
MD5 9ae31890dcf77775146c78ec811d4719
BLAKE2b-256 8ee87dc5fcdf42237c77a2b71f25d72fc91c75940b3f1909748e965229440d50

See more details on using hashes here.

Provenance

The following attestation bundles were made for sqlite_hybrid_search-0.2.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on ashray-00/sqlite-hybrid-search

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sqlite_hybrid_search-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for sqlite_hybrid_search-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c371955106aa4f0a44b1193f2e69873233c89560309a3d212acbe24bdfb0a8b7
MD5 74deb9ef2ee1df52b52ff570fbeccc78
BLAKE2b-256 149a63dc0e7567139a72ecf922ba7261c3d71c5a7d9e8aecd40b21d758d1bbe8

See more details on using hashes here.

Provenance

The following attestation bundles were made for sqlite_hybrid_search-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on ashray-00/sqlite-hybrid-search

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sqlite_hybrid_search-0.2.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sqlite_hybrid_search-0.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ffec44ea6b3162008d8c0c09359d6e880b793586b2f972bafd1c7b62ca7f8ac9
MD5 48f471c5bfe902300bddc4392781c895
BLAKE2b-256 77b64842f8f6922f78a6202dedf81e6243abbc5c75d6e7856dbda58159df618f

See more details on using hashes here.

Provenance

The following attestation bundles were made for sqlite_hybrid_search-0.2.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on ashray-00/sqlite-hybrid-search

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sqlite_hybrid_search-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for sqlite_hybrid_search-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f367d17e50a240ca45b4327c40c09a60159f09ff7577b6c14aeaba2232979088
MD5 dbc1d8e18bb8436791eb814c2b8b12f6
BLAKE2b-256 43a29e2844ace3f75292a1255f88b3d17b87879c5fbc49f5f669685ef51834b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for sqlite_hybrid_search-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on ashray-00/sqlite-hybrid-search

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sqlite_hybrid_search-0.2.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sqlite_hybrid_search-0.2.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e422e6fb8ddc5755166d51b016a4033d5289d11d97caaf7cfc562ac6eabd9d75
MD5 e0eee5b952609bedee8431fe6806af8f
BLAKE2b-256 b1aed169aa9d3e1a0bad1b309f75be73b0cb60c96b78a58b69c9899b88bff076

See more details on using hashes here.

Provenance

The following attestation bundles were made for sqlite_hybrid_search-0.2.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release.yml on ashray-00/sqlite-hybrid-search

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sqlite_hybrid_search-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for sqlite_hybrid_search-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fb4d75e57fca8af13074bf68433da2a18c9e1816f757546f31e713cf2434107c
MD5 67987e5bb0420df411e33d8941f11b18
BLAKE2b-256 4a6a3624511bb5b0f11dae9666b91f3ad65e93a716d19e9b03faf5dd20c00c1d

See more details on using hashes here.

Provenance

The following attestation bundles were made for sqlite_hybrid_search-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on ashray-00/sqlite-hybrid-search

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sqlite_hybrid_search-0.2.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sqlite_hybrid_search-0.2.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 55c4350fc50fdc7edcec5e7eec4272ddac56b4e84a5bd92d3b5d9f12d3337b10
MD5 6dbbfda29fd52740e5547b7edf759a08
BLAKE2b-256 889d6715dff28a7183a4685763f2b69cc9b090817a12b2438b80bc9ab6f7b59d

See more details on using hashes here.

Provenance

The following attestation bundles were made for sqlite_hybrid_search-0.2.0-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: release.yml on ashray-00/sqlite-hybrid-search

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.2.0 This release

11 files

0.1.0

11 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page