RocksDB wrapper for Go. Support 11.x, 10.x, 9.x, 8.x, 7.x, 6.x, etc
Go
399
169 commits
updated Sep 7, 2026
This is a Fork from tecbot/gorocksdb. I respect the author work and community contribution.
The LICENSE still remains as upstream.
Why I made a patched clone instead of PR:
no defer in codebase (my side project requires as less overhead as possible). This introduces loose
convention of how/when to free c-mem, thus break the rule of tecbot/gorocksdb.Please follow this guide: https://github.com/facebook/rocksdb/blob/master/INSTALL.md to build above libs.
After installing both rocksdb and grocksdb, you can build your app using the following commands:
CGO_CFLAGS="-I/path/to/rocksdb/include" \
CGO_LDFLAGS="-L/path/to/rocksdb -lrocksdb -lstdc++ -lm -lz -lsnappy -llz4 -lzstd" \
go build
Or just:
go build // if prerequisites are in linker paths
If your rocksdb was linked with bz2:
CGO_LDFLAGS="-L/path/to/rocksdb -lrocksdb -lstdc++ -lm -lz -lsnappy -llz4 -lzstd -lbz2" \
go build
Currently, the default build flags without specifying CGO_LDFLAGS or the corresponding environment variables are -lrocksdb -pthread -lstdc++ -ldl -lm -lzstd -llz4 -lz -lsnappy
If you want to customize the build flags:
-tags grocksdb_clean_link to create a cleaner set of flags and build it based on the cleaner flag. The base build flags after using the tag are -lrocksdb -pthread -lstdc++ -ldl.CGO_LDFLAGS="-L/path/to/rocksdb -lzstd" go build -tags grocksdb_clean_link
-tags grocksdb_no_link to ignore the build flags provided by the library and build it fully based on the custom flags.CGO_LDFLAGS="-L/path/to/rocksdb -lrocksdb -lstdc++ -lzstd -llz4" go build -tags grocksdb_clean_link
See also: doc
Almost C API, excepts:
Go
75.1%
C
24.5%
RocksDB wrapper for Go. Support 11.x, 10.x, 9.x, 8.x, 7.x, 6.x, etc
Go
399
169 commits
updated Sep 7, 2026
This is a Fork from tecbot/gorocksdb. I respect the author work and community contribution.
The LICENSE still remains as upstream.
Why I made a patched clone instead of PR:
no defer in codebase (my side project requires as less overhead as possible). This introduces loose
convention of how/when to free c-mem, thus break the rule of tecbot/gorocksdb.Please follow this guide: https://github.com/facebook/rocksdb/blob/master/INSTALL.md to build above libs.
After installing both rocksdb and grocksdb, you can build your app using the following commands:
CGO_CFLAGS="-I/path/to/rocksdb/include" \
CGO_LDFLAGS="-L/path/to/rocksdb -lrocksdb -lstdc++ -lm -lz -lsnappy -llz4 -lzstd" \
go build
Or just:
go build // if prerequisites are in linker paths
If your rocksdb was linked with bz2:
CGO_LDFLAGS="-L/path/to/rocksdb -lrocksdb -lstdc++ -lm -lz -lsnappy -llz4 -lzstd -lbz2" \
go build
Currently, the default build flags without specifying CGO_LDFLAGS or the corresponding environment variables are -lrocksdb -pthread -lstdc++ -ldl -lm -lzstd -llz4 -lz -lsnappy
If you want to customize the build flags:
-tags grocksdb_clean_link to create a cleaner set of flags and build it based on the cleaner flag. The base build flags after using the tag are -lrocksdb -pthread -lstdc++ -ldl.CGO_LDFLAGS="-L/path/to/rocksdb -lzstd" go build -tags grocksdb_clean_link
-tags grocksdb_no_link to ignore the build flags provided by the library and build it fully based on the custom flags.CGO_LDFLAGS="-L/path/to/rocksdb -lrocksdb -lstdc++ -lzstd -llz4" go build -tags grocksdb_clean_link
See also: doc
Almost C API, excepts:
Go
75.1%
C
24.5%