Changelog
View SourceAll notable changes to this project are documented here.
0.3.0 - 2026-07-27
- Added configurable
read_ahead: falsesupport for LMDB'sMDB_NORDAHEADperformance hint, including compatibility checks and benchmark reporting. - Added opt-in versioned value codecs with transparent CRUD/scans/batches, deterministic CAS, explicit raw migration access, and a safe Erlang-term codec.
- Added an opt-in supervised BatchWriter with bounded FIFO group commits, producer-side codec encoding, overload control, and separate flush/sync barriers.
- Added monitored commit workers with exact waiter notification, conservative unknown-outcome termination, no automatic retry, and graceful drain/stop.
- Added cross-BEAM BatchWriter/codec/read-ahead/durability validation and BatchWriter benchmark workloads with queue high-water and trigger metrics.
0.2.0 - 2026-07-27
- Added per-environment
:sync,:no_meta_sync, and:no_syncdurability modes, plusLeanLmdb.sync/1for explicit forced checkpoints. - Added opt-in experimental
fixed_map: truesupport forMDB_FIXEDMAPwhile continuing to rejectWRITE_MAP,MAP_ASYNC, andNO_LOCK. - Added comprehensive configurable Benchee workloads with JSON and interactive HTML reports.
0.1.0 - 2026-07-27
Initial release.
- Shared, canonical-path LMDB environments and immutable named-database handles.
- Raw binary CRUD with stable missing/error results.
- Atomic cross-database batches and compare-and-swap conflict results.
- Bounded prefix/range scans with opaque process-local continuation tokens.
- Multi-BEAM coordination and stale-reader diagnostics.
- RustlerPrecompiled bootstrap for seven NIF 2.16 targets, with checksummed download-by-default installation and packaged Rust source fallback.
- Source fallback retains Rustler/heed test-support builds, ExDoc API documentation, and an offline release QA gate.
- Manual-only, draft-first release automation validated and published all seven
archives at the
v0.1.0GitHub release; the package pins their SHA-256 values inchecksum-Elixir.LeanLmdb.Native.exs.
Known constraints: LMDB permits one writer per environment; map growth is not automatic; scans do not retain a cross-page snapshot; values are copied rather than exposed zero-copy; only local filesystems are supported; Windows is limited to the x86-64 precompiled target; NIF hot upgrade with live resources is unsupported.