# Changelog
- 0.2.0 (2026-11-04)
* Breaking: 'openDbi' now takes an 'Env' rather than a 'Txn', and
opens the database in a transaction of its own. The handle is
valid until the 'Env' is closed.
* Fixes a crash when a write transaction's commit fails, and a
double abort when an async exception arrives just after a commit
or abort.
* Fixes database names being passed to LMDB without a NUL
terminator; names containing a NUL are now rejected.
* Transactions may now be used from any Haskell thread, under either
RTS: environments use MDB_NOTLS, so read transactions may nest and
run concurrently, and write transactions are serialized and run on
a single OS thread.
* Fixes the MDB_val layout on 32-bit targets.
* Adds 'sync'. 'open' rejects a negative 'envMapSize' or an
out-of-range 'envMaxDbs'.
* Key-value and cursor operations use unsafe foreign calls, for
speed.
- 0.1.0 (2026-05-24)
* Initial release, consisting of support for LMDB environments,
transactions, basic row operations (get, put, del), and range scans.