[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
C++11 wrapper for LMDB
Figured I'd announce this here in case it might be useful to others
working with LMDB from C++:
https://github.com/bendiken/lmdbxx
This is a <lmdb++.h> header file that implements a comprehensive C++
wrapper for LMDB, offering both an error-checked procedural interface
and an object-oriented resource interface with RAII semantics.
See here for a basic example program using this wrapper:
https://github.com/bendiken/lmdbxx/blob/master/example.cc#L1
A quick summary of features (read the README for more information):
• Designed to be entirely self-contained as a single <lmdb++.h> header
file that can be dropped into a project.
• Implements a straightforward mapping from C to C++, with consistent naming.
• Provides both a procedural interface and an object-oriented RAII interface.
• Simplifies error handling by translating error codes into C++ exceptions.
• Carefully differentiates logic errors, runtime errors, and fatal errors.
• Exception strings include the name of the LMDB function that failed.
• Plays nice with others: all symbols are placed into the lmdb namespace.
• 100% free and unencumbered public domain software.
The <lmdb++.h> header file requires a C++11 compiler and standard
library. Recent releases of Clang or GCC will work fine.
The wrapper is pretty complete at this point and is used in a
production setting in the implementation of an RDF graph database.
Next steps would be to figure out a versioning policy (vis-a-vis
LMDB), package it up as a tarball release, and publish the generated
Doxygen HTML documentation somewhere.
Best regards from springtime Berlin,
Arto
--
Arto Bendiken | @bendiken | http://ar.to