A LSM-Tree key/value database in Python
Project description
soonerdb
A LSM-Tree key/value database in Python.
Free software: MIT license
Documentation: https://soonerdb.readthedocs.io.
This project started as a learning tool when studing the excelent book “Designing data-intensive applications” by Martin Kleppmann.
Features
Pure Python fast LSM-Tree based key/value database.
Embedded and zero-conf.
Support in-order traversal of all stored keys.
On-disk database persistence.
Data is durable in the face of application or power failure.
Background merge of segment files.
Python 3.6+.
📝 TODO List
[ ] Deletion of keys.
Installation
You can install using pip:
pip install soonerdb
Or from source:
git clone https://github.com/fgmacedo/soonerdb
cd soonerdb
python setup.py install
Quick intro
SoonerDB has a dict-like API.
Showtime:
In [1]: from soonerdb import SoonerDB
In [2]: db = SoonerDB('./tmp')
In [3]: db["my key"] = "A value"
In [4]: db["my key"]
Out[4]: 'A value'
In [5]: "my key" in db
Out[5]: True
In [6]: "other key" in db
Out[6]: False
In [7]: db["other key"]
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-7-bc114493f395> in <module>
----> 1 db["other key"]
KeyError: "Key 'other key' not found."
In [8]: db.get("other key", "default value")
Out[8]: 'default value'
In [9]: db.set("another", "value")
In [10]: list(db)
Out[10]: [('another', 'value'), ('my key', 'A value')]
History
0.1.2 (2020-12-18)
Background merge of segment files.
Adding coverage badge on README.
0.1.1 (2020-12-18)
Fixes setup.py.
Improved README.
0.1.0 (2020-12-18)
First release on PyPI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file soonerdb-0.1.2.tar.gz.
File metadata
- Download URL: soonerdb-0.1.2.tar.gz
- Upload date:
- Size: 16.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f9a8b3f7028ed0245a4d070000ec52c440f697740067673eeedcc7700828b28a
|
|
| MD5 |
e0b2c3675baf54ad975dea2eb8ead324
|
|
| BLAKE2b-256 |
5ddf2a0ca0223f15502d33223bd0d7f855a21af0c121a9e440a0927c50032764
|
File details
Details for the file soonerdb-0.1.2-py2.py3-none-any.whl.
File metadata
- Download URL: soonerdb-0.1.2-py2.py3-none-any.whl
- Upload date:
- Size: 9.0 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2dc636ed2477f9d286c6bec5aba7572323d0a30d0b1663e5b3ce3eedcee0275e
|
|
| MD5 |
b4af4a0893921fceaa12f9a5bab9b693
|
|
| BLAKE2b-256 |
4fa6dec25fa2989fecc6dc423d81ea58f54c54f0ed00ca6e00c77ed9c691556b
|