packages feed

libmdbx-0.2.1.1: ChangeLog.md

### 0.2.1.1

* Upgrade libmdbx to latest version (30b3cc3).
* Properly close cursor after use.
* Document the need of including `MdbxNotls` when using the multi-threaded runtime.

### 0.2.1.0

* Add proper transaction handling for Database module (commit on success but
  also abort on exception).
* Add `getBounds` function to retrieve minimum and maximum key/pairs on a given
  range of keys.

### 0.2.0.0

* Add support for setting database geometry.
* Add `delRange` to remove a range of keys.
* Add `getRangePairs` to retrieve the keys alongside the values.
* Add `NullByteString` and `NullText` types. The `Binary` and `Store` instances
  for these types are encoded as NULL terminated strings, which allows for using
  them in custom key types with libmdbx. This is not possible with `ByteString`
  and `Text`, since their `Binary` and `Store` instances are serialized with the
  size field first. Given that libmdbx compares keys as an unstructured sequence
  of bytes, this can cause issues since longer strings are considered _greater
  than_ shorter ones, even if their content indicates otherwise.
* Since the library now provides `Store` instances for `NullByteString` and
  `NullText`, [Store](https://hackage.haskell.org/package/store) was made a
  dependency for the library itself and not just for the examples.
* The same happens with [Binary](https://hackage.haskell.org/package/binary). It
  is also marked as the recommended serialization library for keys since it
  uses big endian for encoding, eliminating issues when comparing keys with
  libmdbx's comparison function.
* Make `Database` module Strict. Recommend making user types strict.
* Update to latest version of libmdbx.
* Add test cases.

### 0.1.0.4

* Require base 4.12 (deriving via is only available since GHC 8.6).
* Remove dependency on string-interpolate.

### 0.1.0.1 - 0.1.0.3

* Fixing Hackage deployment.

### 0.1.0.0

* Initial release.
* Low level API.
* High level API.