<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><br></div><div>LETS is an alternative Erlang Term Storage using LevelDB as the storage implementation. LETS tries to address some bad properties of ETS and DETS. ETS is limited by physical memory. DETS is limited by a 2 GB file size limitation and does not implement ordered sets. LETS has neither of these limitations. Data can also be automatically compressed using the Snappy compression library.<br><br></div><div>Changes since v0.5.1:</div><div><br></div><div><span class="Apple-tab-span" style="white-space: pre; "> </span>• Added support to use async thread pool for driver backend</div><div><span class="Apple-tab-span" style="white-space: pre; "> </span>• Added support for ets match, ets select, and friends</div><div><br>For testing and comparison purposes, LETS supports three implementations:</div><div><br><div><span class="Apple-tab-span" style="white-space:pre"> </span>• drv C++ Driver with LevelDB backend (default)<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• nif C++ NIF with LevelDB backend<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• ets Erlang ETS backend<br></div><div><br></div>LETS is not intended to be an exact clone of ETS. The currently supported ETS APIs are:</div><div><br><div><span class="Apple-tab-span" style="white-space:pre"> </span>• delete/1<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• delete/2<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• delete_all_objects/1 only ets implementation<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• first/1<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• foldl/3<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• foldr/3<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• info/1 only a subset of items<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• info/2 only a subset of items<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• insert/2<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• insert_new/2 only ets implementation<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• last/1<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• lookup/2<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• lookup_element/3<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• match/1<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• match/2<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• match/3<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• match_delete/2<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• match_object/1<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• match_object/2<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• match_object/3<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• member/2<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• new/2<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• next/2<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• prev/2<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• select/1<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• select/2<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• select/3<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• select_count/2<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• select_delete/2<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• select_reverse/1<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• select_reverse/2<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• select_reverse/3<br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>• tab2list/1</div></div><div><br></div><div><br></div><div>LETS has been tested solely using QuickCheck and PropEr.</div><div><br></div>For further information and instructions to download, please see the <a href="https://github.com/norton/lets">https://github.com/norton/lets</a> repository on GitHub.<br><br>thanks,<br><br>Joe N.<div><div apple-content-edited="true"><br></div></div></body></html>