Skip to main content

soonerdb

https://img.shields.io/pypi/v/soonerdb.svg https://img.shields.io/travis/fgmacedo/soonerdb.svg Coverage report Documentation Status

A LSM-Tree key/value database in Python.

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.

Metadata

Release files for soonerdb 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for soonerdb 0.1.2
File Size Uploaded Provenance
soonerdb-0.1.2.tar.gz 16.6 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for soonerdb 0.1.2
File Interpreter ABI Platform
soonerdb-0.1.2-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 25.6 kB

Release files / soonerdb-0.1.2.tar.gz

Download URL soonerdb-0.1.2.tar.gz
Size 16.6 kB
Tags Source
SHA-256 checksum
How to use checksums
f9a8b3f7028ed0245a4d070000ec52c440f697740067673eeedcc7700828b28a
BLAKE2b-256 checksum
How to use checksums
5ddf2a0ca0223f15502d33223bd0d7f855a21af0c121a9e440a0927c50032764
Upload date
Uploaded using Trusted Publishing?
What is 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

Release files / soonerdb-0.1.2-py2.py3-none-any.whl

Download URL soonerdb-0.1.2-py2.py3-none-any.whl
Size 9.0 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
2dc636ed2477f9d286c6bec5aba7572323d0a30d0b1663e5b3ce3eedcee0275e
BLAKE2b-256 checksum
How to use checksums
4fa6dec25fa2989fecc6dc423d81ea58f54c54f0ed00ca6e00c77ed9c691556b
Upload date
Uploaded using Trusted Publishing?
What is 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

Security for soonerdb 0.1.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page