The Erlang source, C++ header, and C++ source files for the LevelDB and HyperLevelDB nif and driver implementations are identical except for a few mechanical differences. The Makefile using a simple, bruteforce recipe automatically mirrors the HyperLevelDB nif and driver implementations to the corresponding LevelDB implementations.
The notify/4 when_destroyed feature is used by the drv database implementation to ensure the leveldb handle is destroyed before returning to a destroy/1 caller. This is necessary to prevent a race condition with an attempt to re-open the same database (before cleanup has finished). This feature would be useful for the nif database implementation as well. Unfortunately, the nif implementation relies on reference counting and this doesn't allow lets to easily to take advantage of this new feature. This feature when made available in the lets API would allow a calling application to use this feature.
Caller can tailor the read_options and write_options for LET's operations by managing multiple table identifiers. The function tid/2 returns a copy of a table's identifier with given LevelDB read and write options. If options are not undefined, the given read and write options are used when the returned copy is passed as the first argument to table operations. Otherwise, the original read and write options given at the time of calling new/2 are used.