Metadata-Version: 2.1
Name: soonerdb
Version: 0.1.1
Summary: A LSM-Tree key/value database in Python
Home-page: https://github.com/fgmacedo/soonerdb
Author: Fernando Macedo
Author-email: fgmacedo@gmail.com
License: MIT license
Description: ========
        soonerdb
        ========
        
        
        .. image:: https://img.shields.io/pypi/v/soonerdb.svg
                :target: https://pypi.python.org/pypi/soonerdb
        
        .. image:: https://img.shields.io/travis/fgmacedo/soonerdb.svg
                :target: https://travis-ci.com/fgmacedo/soonerdb
        
        .. image:: https://codecov.io/gh/fgmacedo/soonerdb/branch/main/graph/badge.svg
                :target: https://codecov.io/gh/fgmacedo/soonerdb
                :alt: Coverage report
        
        .. image:: https://readthedocs.org/projects/soonerdb/badge/?version=latest
                :target: https://soonerdb.readthedocs.io/en/latest/?badge=latest
                :alt: Documentation Status
        
        
        
        
        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.
        
        .. note::
        
            This project still in development 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.
        - Thread-safe.
        - **Python 3.6+**.
        
        
        📝 TODO List
        -------------
        - [ ] Deletion of keys.
        - [ ] Background merge of segment files (segment files are merged at load time).
        
        
        Installation
        ------------
        
        You can install using ``pip``:
        
        .. code-block:: console
        
            pip install soonerdb
        
        Or from source:
        
        .. code-block:: console
        
            git clone https://github.com/fgmacedo/soonerdb
            cd soonerdb
            python setup.py install
        
        
        Quick intro
        -----------
        
        ``SoonerDB`` has a dict-like API.
        
        Showtime:
        
        .. code-block:: pycon
        
            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.0 (2020-12-18)
        ------------------
        
        * First release on PyPI.
        
Keywords: soonerdb
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Requires-Python: >=3.5
Description-Content-Type: text/x-rst
