LMDB is a very fast database which maps committed records into memory.
aclocal --force && autoheader --force && autoconf --forcethen run
./configurethen call make swi to compile for SWI Prolog, or make gp to compile for GNU Prolog.
A simple make will produce both.
mkdir -p ${HOME}/lib/sbcl
cp src/lmdb.qlf ~/lib/sbcl/
cp pllmdb-* ~/lib/sbcl/pllmdbadd to the search path for SWI Prolog:
echo ":- assertz(file_search_path(sbcl,'${HOME}/lib/sbcl'))." >> ${HOME}/.config/swi-prolog/init.plrun make check to start all tests using SWI Prolog and GNU Prolog. Note the time to completion.
this test will populate a database with one million of records:
swipl -l test/t3.pl -g testthis test reads them all back and verifies them:
swipl -l test/t4.pl -g test