libmdbx: Bindings for libmdbx, an embedded key/value store

[ bsd3, database, library, program ] [ Propose Tags ]

Haskell bindings for libmdbx.

See documentation in the main module or check the README on GitHub.


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0.0, 0.1.0.1, 0.1.0.2, 0.1.0.3, 0.1.0.4, 0.2.0.0, 0.2.1.0, 0.2.1.1
Change log ChangeLog.md
Dependencies base (>=4.11 && <5), bytestring (>=0.10 && <0.12), libmdbx, mtl (>=2.1 && <2.3), store (>=0.7 && <0.8), string-interpolate (>=0.2 && <0.4), text (>=1.2 && <1.3) [details]
License BSD-3-Clause
Copyright 2021 Francisco Vallarino
Author Francisco Vallarino
Maintainer fjvallarino@gmail.com
Category Database
Home page https://github.com/fjvallarino/libmdbx-hs#readme
Bug tracker https://github.com/fjvallarino/libmdbx-hs/issues
Source repo head: git clone https://github.com/fjvallarino/libmdbx-hs
Uploaded by fjvallarino at 2021-07-30T19:56:11Z
Distributions
Executables libmdbx-exe
Downloads 823 total (22 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2021-07-30 [all 1 reports]

Readme for libmdbx-0.1.0.3

[back to package description]

libmdbx-hs

A libmdbx wrapper, providing low level access to its API plus a set of high level functions for common operations.

Excerpt from libmdbx's documentation:

libmdbx is an extremely fast, compact, powerful, embedded, transactional key-value database, with permissive license.

Historically, libmdbx is a deeply revised and extended descendant of the amazing Lightning Memory-Mapped Database. libmdbx inherits all benefits from LMDB, but resolves some issues and adds a set of improvements.

Usage

Low level interface

Using libmdbx low level interface involves the following steps:

  • Opening an environment. This is the equivalent of a database.
  • Opening a database. This is the equivalent of a table.
  • Creating a transaction.
  • Performing CRUD operations/using a cursor.
  • Committing or aborting the transaction.

You can check Hackage for the low level interface or libmdbx documentation for more details on internals.

High level interface

Alternatively you can use the higher level interface which, although it provides a more limited set of operations, takes care of transaction handling and makes the common use cases really simple.

For the high level interface check Hackage or the sample application here.

Common

In both scenarios, you will want to check Hackage for information on how to make your data types compatible with libmdbx-hs.

Dependencies

Source code for libmdbx is included in the repository and built with the rest of the project, to avoid requiring a separate library install.

License

libmdbx is licensed under the The OpenLDAP Public License.

libmdbx-hs is licensed under the BSD-3 License.