Rocksdb3 is a python bindings for rocksdb based on rust wrapper rust-rocksdb and PyO3.
This is a very early proof-of-concept version. Please do not use it in production.
There is already have python-rocksdb, so why create a new wrapper for rocksdb?
- It's fun
- I'm learning Rust, this is my exprience
- PyO3 is fun, too
- Python-rocksdb is not actively maintained
- Python-rocksdb is not released with statically-linked multiple-operating-system-supported wheel binaries
- Debugging out-of-bounds pointers is boring
- precompiled wheel binaries for Linux, Windows, macOS, on python 3.5, 3.6, 3.7, 3.8, 3.9, 3.10
- basic open/put/get/delete/close
- open as secondary instance
- destroy/repair
- iterator
- iterator with specific prefix
- write batch
- options
- open options
- read options
- write options
pip install rocksdb3
import rocksdb3
path = './db_path'
db = rocksdb3.open_default(path)
assert db.get(b'my key') is None
db.put(b'my key', b'my value')
assert db.get(b'my key') == b'my value'
assert list(db.get_iter()) == [(b'my key', b'my value')]
db.delete(b'my key')
assert db.get(b'my key') is None
del db # auto close db
rocksdb3.destroy(path)
pip install maturin
maturin build