Skip to content

input-output-hk/lmdb-simple

 
 

Haskell CI handbook

Input-Ouptut fork lmdb-simple

See INPUT-OUTPUT-FORK.md for reasons for the current fork.

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 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 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.