See INPUT-OUTPUT-FORK.md for reasons for the current fork.
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
put
andget
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 toIORef
that is tied to a particular key in an LMDB database.