Ada 2012 Bindings to the Lightning Memory-Mapped Database
LMDB: Add Delete_Current Cursor operation
LMDB: Add Replace_Value Cursor operation
README: add Alire badge



You can also use your local clone with git send-email.

#lmdb-ada — Ada 2012 Bindings to the Lightning Memory-Mapped Database

builds.sr.ht status license: BSD-2-Clause AND OLDAP-2.8+ Alire

Thick Ada bindings to the Lightning Memory-Mapped Database (LMDB) library, a very high-performance and resilient embedded key-value store.

Note: The bindings are currently complete, however there are some functions that are not yet bound to, mostly functions intended for extremely-high-performance applications that custom-tune low-level database parameters for their specific data. All the core functionality of the library is implemented in these bindings, and it is suitable for all but these atypical use-cases. Contributions implementing bindings to these functions are welcome if you find them necessary.


See the package specifications, which have copious doc comments:

  • LMDB
    • LMDB.Utils (helper functions for converting to/from Stream_Element_Arrays)

You may also want to look at the example program.

As well as the thick library, thin bindings to the entire LMDB library are also available: lmdb_h


Use Alire: alr with lmdb_ada, then with "lmdb.gpr"; in your GPRBuild file.

Alternately, add this repo as a subtree or submodule in your project and include with "path/to/lmdb.gpr"; in your GPRbuild file.

You may also install the library & specification in a system library directory and include it from there.




git clone https://git.sr.ht/~nytpu/lmdb-ada && cd lmdb-ada
make example  # builds example program
sudo make install

You may also use plain gprbuild and gprinstall commands rather than the convenience makefile.


The upstream URL of this project is https://git.sr.ht/~nytpu/lmdb-ada. Send suggestions, bugs, patches, and other contributions to ~nytpu/public-inbox@lists.sr.ht. For help sending a patch through email, see https://git-send-email.io. You can browse the list archives at https://lists.sr.ht/~nytpu/public-inbox.

If you have a very large set of changes, please use git request-pull rather than sending a large patchset.

Copyright (c) 2022 nytpu <alex [at] nytpu.com>

Licensed under the terms of the BSD 2-Clause license. You can view a copy of the licenses in LICENSE.

LMDB is Copyright 2011-2021 Howard Chu, Symas Corp.

LMDB is licensed under the OpenLDAP Public License. You can view a copy of the copyright notice and license in src/liblmdb/COPYRIGHT and src/liblmdb/LICENSE, respectively.