package snkv

  1. Overview
  2. Docs
OCaml bindings for SNKV key-value store

Install

dune-project
 Dependency

Authors

Maintainers

Sources

0.3.1.tar.gz
md5=bfb9a476f9f2305e63b263af09f740be
sha512=b03cfd713a4195ff2f4f635f8bcc66c315991539efcfa232cc828941adfa3763c113028b537f6c6656b7148e13b1a9f3391e467453cccd1bea808aa2245e4752

doc/CHANGELOG.html

Changelog

0.3.1 - 2026-10-25

Added

  • Core package is available on Windows again.
  • Windows-only test for the vector stub API.

Changed

  • Vector implementation is selected at build time: real implementation on Unix, stub on Windows.
  • Vector tests are skipped on Windows.
  • Vendored FP16 and replaced the compiler-specific _Float16 fallback in the vector build.

0.3.0 - 2026-10-23

Added

  • Snkv.Vector bindings for SNKV HNSW vector search.
  • Vector tests for distance spaces, TTL, sidecar persistence, encryption, errors, batch duplicates, and larger indexes.
  • doc/vector_api.md.
  • Portable vector build via Dune foreign libraries on Linux and macOS.

Changed

  • Kv.error_code now includes vector-specific codes (DimMismatch, DtypeMismatch, SpaceMismatch, IndexDropped, IndexEmpty, BadVector).
  • Vector API uses Kv.result and Kv.error_code, without trailing unit arguments.

Notes

  • Windows is not supported in the 0.3.x line; the package is marked unavailable on Windows.

0.2.0 - 2026-10-22

Added

  • Vendored SNKV v0.8.2 and recorded provenance in lib/snkv.upstream.
  • Reproducible vendoring via scripts/update-snkv.sh.
  • Low-level config mapping and full_mutex for OCaml 5 domains.
  • Error codes from SNKV are propagated to the high-level result API.
  • Refcounted handle lifetimes for stores, column families, and iterators.
  • New test modules for basic operations, config, TTL, iterators, encryption, errors, and lifetimes.
  • doc/compatibility.md and CHANGELOG.md.

Changed

  • None filenames open an in-memory database instead of an empty path.
  • Encrypted stores now require an explicit filename.
  • checkpoint returns (log, ckpt) instead of mutating references.
  • Txn.with_transaction rolls back on exceptions.
  • C buffers are released with snkv_free.
  • High-level open applies the full Config record through kvstore_open_v2.

Fixed

  • Missing or incorrect error mapping (Busy, ReadOnly, AuthFailed, NotFound).
  • Use-after-free risks around handle finalizers and CF/iterator lifetimes.

0.1.1

  • Initial public release.