Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

A LSM-Tree key/value database in Python.

License

NotificationsYou must be signed in to change notification settings

fgmacedo/soonerdb

Repository files navigation

Coverage reportDocumentation 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.

Note

This is a toy project and is not yet tested on production environments.Use at your own risk.

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 usingpip:

pip install soonerdb

Or from source:

git clone https://github.com/fgmacedo/soonerdbcd soonerdbpython setup.py install

Quick intro

SoonerDB has a dict-like API.

Showtime:

In [1]:from soonerdbimport SoonerDBIn [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 dbOut[5]: TrueIn [6]:"other key"in dbOut[6]: FalseIn [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')]

[8]ページ先頭

©2009-2025 Movatter.jp