package snkv
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page
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.
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page