Openleveldb is a small pythonic wrapper around Plyvel


Transparent object store

It works with python objects:

  • Automatically encodes objects into bytes when saving to leveldb

  • Automatically decodes bytes into their original type when retrieving objects from leveldb

Supported types include:

  • int

  • str

  • numpy.ndarray

  • Anything that is serializable by orjson

>>> db['key'] = {'key': [1, 2, 3]}
>>> db['key']
{'key': [1, 2, 3]}

Python dict-like protocol

It offers dict-like interface to LevelDB

>>> db["prefix", "key"] = np.array([1, 2, 3], dtype=np.int8)
>>> db["prefix", "key"]
array([1, 2, 3], dtype=int8)
>>> db = db["prefix", ...]
>>> db["key"]
array([1, 2, 3], dtype=int8)

String-only keys

The only possible type for the keys is str. It avoids several problems when working with prefixes.

Multiprocessing support

Experimental multiprocessing support using a background flask server, exposing the same API of a direct connection:

db = LevelDB(db_path="path_to_db", server_address="")