A self-contained LevelDB wrapper for Nim in a Nim friendly way. Uses git-submodule and nimterop so that no external libraries have to be installed or linked.
CMake is used during compilation to determine which of the following optimization options are enabled. You can set the following nim compiler flags to 0 or 1 to override them:
- fdatasync from <unistd.h>`--passC:-DHAVE_FDATASYNC=1`
- F_FULLSYNC from <fcntl.h>`--passC:-DHAVE_FULLFSYNC=1`
- O_CLOEXEC from <fcntl.h>`--passC:-DHAVE_O_CLOEXEC=1`
- crc32c from <crc32c/crc32c.h>`--passC:-DHAVE_CRC32C=1`
- snappy from <snappy.h>`--passC:-DHAVE_SNAPPY=1`
- zstd from <zstd.h>`--passC:-DHAVE_ZSTD=1`
## Updating
When you want to update this library to a new version of LevelDB, follow these steps:
- Update LevelDB submodule to new version.
- Run 'build.sh'.
- Run 'nimble build' and 'nimble test'.
- Make sure everything's working.
- Increment version of this library in 'leveldbstatic.nimble'.