Task::LMDB - Stub module to depend on Alien::LMDB and LMDB_File


In your module's Makefile.PL, depend on Task::LMDB instead of LMDB_File:

    PREREQ_PM => {
        'Task::LMDB' => 0,  ## provides LMDB_File

Same goes for Build.PL:

    requires => {
        'Task::LMDB' => 0,  ## provides LMDB_File


Since LMDB_File stopped bundling the LMDB source code, you must provide your own copy of and its header files. Keeping them de-coupled allows the development of LMDB_File to not be tied to LMDB releases.

Because LMDB_File needs to compile and link against LMDB, you must provide a working LMDB installation prior to installing LMDB_File. This can be accomplished by compiling LMDB from source code, using your operating system's package manager, or by installing the Alien::LMDB package. Alien::LMDB will attempt to use a system LMDB if it is installed, otherwise will compile its own bundled copy.

Task::LMDB is just a stub module that depends on Alien::LMDB as a configure time dependency, and on LMDB_File as a regular dependency. This ordering ensures that Alien::LMDB will be installed prior to compiling LMDB_File. In this way, CPAN modules that don't care where the LMDB library comes from can depend on LMDB_File purely by adding a CPAN dependency on Task::LMDB.


Task::LMDB github repo

Symas Lightning Memory-mapped Database




Doug Hoyte, <>


Copyright 2016 Doug Hoyte.

This module is licensed under the same terms as perl itself.