Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/verement/lmdb-simple

Simple Haskell API for LMDB
https://github.com/verement/lmdb-simple

database haskell-api haskell-library lmdb

Last synced: about 2 months ago
JSON representation

Simple Haskell API for LMDB

Awesome Lists containing this project

README

        

Simple Haskell API for LMDB
===========================

This package allows you to store arbitrary Haskell values in and retrieve them
from a persistent [Lightning Memory-mapped Database][LMDB] on disk.

[LMDB]: https://symas.com/lightning-memory-mapped-database/

LMDB is a high-performance [ACID][]-compliant no-maintenance read-optimized
key-value store. Any Haskell type with a [`Serialise`][Serialise] instance can
be stored in an LMDB database, or used as a key to index one.

[ACID]: https://en.wikipedia.org/wiki/ACID
[Serialise]: https://hackage.haskell.org/package/serialise/docs/Codec-Serialise-Tutorial.html#g:3

This package provides a few different APIs for using LMDB:

* The basic API provides transactional `put` and `get` functions to store
and retrieve values from an LMDB database.

* The extended API provides many functions similar to those in `Data.Map`,
e.g. `lookup`, `insert`, `delete`, `foldr`, and so on.

* The `View` API provides a read-only snapshot of an LMDB database that can
be queried from pure code.

* The `DBRef` API provides a mutable variable similar to `IORef` that is
tied to a particular key in an LMDB database.