Packages
rocksdb
3.0.0
3.1.1
3.1.0
3.0.0
2.6.2
2.6.1
retired
2.6.0
retired
2.5.0
2.4.1
2.4.0
2.3.0
2.2.0
2.1.0
2.0.0
1.9.0
1.8.0
1.7.0
1.6.0
1.5.1
1.5.0
1.4.0
1.3.2
1.3.1
1.3.0
1.2.0
1.1.1
1.1.0
1.0.0
0.26.2
0.26.1
0.26.0
0.25.0
0.24.0
0.23.3
0.23.2
0.23.1
0.23.0
0.22.0
0.21.0
0.20.1
0.20.0
0.19.0
0.18.0
0.17.0
0.16.0
0.15.0
0.14.0
0.13.1
0.13.0
0.12.0
0.11.0
0.10.0
0.9.1
0.9.0
0.8.2
0.8.1
0.8.0
0.7.1
0.7.0
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
RocksDB for Erlang
Current section
Files
Jump to
Current section
Files
CUSTOMIZED_BUILDS.md
# Customized builds #
Since version 0.26.0 Erlang wrapper for RocksDB support customized build.
There are manyoptions added to customize build (all are `OFF` by default):
* `WITH_SYSTEM_ROCKSDB=ON` the driver will link with RocksDB shared library provided by host system
* `WITH_SNAPPY=ON` the driver will link with snappy shared library provided by host system
* `WITH_LZ4=ON` the driver will link with lz4 shared library provided by host system
* `WITH_BZ2=ON` the driver will link with bzip2 shared library provided by host system
* `WITH_ZLIB=ON` the driver will link with zlib shared library provided by host system
* `WITH_ZSTD=ON` (default) the driver will link with zstd. If system library is not found, bundled zstd is used automatically.
* `WITH_BUNDLE_ZSTD=OFF` disable bundled zstd fallback. If system zstd is not found, zstd support is disabled.
* `WITH_CCACHE=ON` the driver will use ccache to cache part of the build. you can also set the `CCACHE_DIR`
* `WITH_TBB=ON` to build with [Threading Building Blocks (TBB)](https://software.intel.com/en-us/intel-tbb)
> ⚠️ with the 1.0.0 release `erlang-rocksdb` doesn't build statically with `LZ4` and s`SNAPPY`. To reintroduce this behaviour
> you can build it with the options `WITH_BUNDLE_SNAPPY` and `WITH_BUNDLE_LZ4`.
All options passes via `ERLANG_ROCKSDB_OPTS` environment variable or via `rebar.config.script`. For example, command
```
$ export ERLANG_ROCKSDB_OPTS="-DERLANG_ROCKSDB_USE_SYSTEM_ROCKSDB=ON -DERLANG_ROCKSDB_USE_SYSTEM_SNAPPY=ON -DERLANG_ROCKSDB_USE_SYSTEM_LZ4=ON"
$ make
```
gives following output on macOS
```
===> Verifying dependencies...
===> Compiling rocksdb
-- Using OTP lib: /usr/local/Cellar/erlang/21.1.4/lib/erlang/lib - found
-- Using erl_interface version: erl_interface-3.10.4
-- Using erts version: erts-10.1.3
-- Found LZ4: /usr/local/lib/liblz4.dylib
-- Found SNAPPY: /usr/local/lib/libsnappy.dylib
-- Found RocksDB: /usr/local/lib/librocksdb.dylib (found suitable version "5.17.2", minimum required is "5.17.2")
-- Configuring done
-- Generating done
...
[SKIP BUILD OUTPUT]
...
```
### Build in parallel
You can build `erlang-rocksdb` in parallel by passing the following option `ERLANG_ROCKSDB_BUILDOPTS=-j`
or `ERLANG_ROCKSDB_BUILDOPTS=-j N` where N is the number of threads you want to use.