package snkv

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

Install

dune-project
 Dependency

Authors

Maintainers

Sources

0.3.0.tar.gz
md5=3fb9ed987a449ca5204bcebd3070e8c3
sha512=6dbc5b29df0480843b80cd801027649533b0c3fb6c89bea3c83435fec6cfa61b26d3b54c3c6dd4aad97729648b6f36ba6ac11538b646056e2888185114e8ff30

doc/CHANGELOG.html

Changelog

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.