This package allows you to store arbitrary Haskell values in and retrieve them from a persistent Lightning Memory-mapped Database on disk.
LMDB is a high-performance ACID-compliant no-maintenance read-optimized
key-value store. Any Haskell type with a Serialise instance can
be stored in an LMDB database, or used as a key to index one.
This package provides a few different APIs for using LMDB:
-
The basic API provides transactional
putandgetfunctions 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
ViewAPI provides a read-only snapshot of an LMDB database that can be queried from pure code. -
The
DBRefAPI provides a mutable variable similar toIORefthat is tied to a particular key in an LMDB database.