moat-kv


Namemoat-kv JSON
Version 0.70.22 PyPI version JSON
download
home_pageNone
SummaryA distributed no-master key-value store
upload_time2024-11-18 09:12:56
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
keywords moat
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI
coveralls test coverage
            =======
MoaT-KV
=======

Welcome to `MoaT-KV <https://github.com/MoaT/moat-kv>`__!

MoaT-KV is a master-less distributed key-value storage system. It
circumvents the CAP theorem (you can't have all of consistency, availablilty,
and fault tolerance) using the assumption that a key is typically changed
by one node only. It is thus resistant to partitioning and intended to be
always-on; it will not block or lose updates, even in a partitioned
network.

MoaT-KV comes with several batteries included:

* Basic user management, pattern-based ACLs

* Strong typing, code- and/or `JSON Schema`-based

* Data mangling

* Background code execution

* Seamless recovery even if only one master is running

The underlying communication is based on MQTT. A Serf back-end is also
available. Others are easy to implement.

MoaT-KV was originally called "distkv".

API
===

MoaT-KV offers an efficient msgpack-based interface to access data and to
change internal settings. Most configuration is stored inside MoaT-KV
itself.

Stored data are **not** forced to be strings or binary sequences, but can
be anything that `MsgPack` supports. Keys to storage are multi-level and
support string, integer/float, and tuple keys.


Non-Features
============

MoaT-KV does not support data partitioning. Every node stores the whole
data set and can instantly deliver mostly-uptodate data.

MoaT-KV does not have a disk-based storage backend. Periodic snapshots and
event logs can be used to quickly restore a system, if necessary.

Status
======

MoaT-KV is mostly stable. There are a lot of corner cases that don't
have tests yet.

TODOs:
* some services (esp. command line tools and runners) are under-tested
* there's no good API for errors

TODO
====

* clean up some of the more egregious command line mistakes

* create a page for showcase-ing subprojects (knx owfs akumuli …)

* improve Home Assistant integration


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "moat-kv",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "MoaT",
    "author": null,
    "author_email": "Matthias Urlichs <matthias@urlichs.de>",
    "download_url": "https://files.pythonhosted.org/packages/d2/9b/9dfa897a229148c57bdbe33abf5ff45e4dc05ef59e1d168953c0dd78c73a/moat_kv-0.70.22.tar.gz",
    "platform": null,
    "description": "=======\nMoaT-KV\n=======\n\nWelcome to `MoaT-KV <https://github.com/MoaT/moat-kv>`__!\n\nMoaT-KV is a master-less distributed key-value storage system. It\ncircumvents the CAP theorem (you can't have all of consistency, availablilty,\nand fault tolerance) using the assumption that a key is typically changed\nby one node only. It is thus resistant to partitioning and intended to be\nalways-on; it will not block or lose updates, even in a partitioned\nnetwork.\n\nMoaT-KV comes with several batteries included:\n\n* Basic user management, pattern-based ACLs\n\n* Strong typing, code- and/or `JSON Schema`-based\n\n* Data mangling\n\n* Background code execution\n\n* Seamless recovery even if only one master is running\n\nThe underlying communication is based on MQTT. A Serf back-end is also\navailable. Others are easy to implement.\n\nMoaT-KV was originally called \"distkv\".\n\nAPI\n===\n\nMoaT-KV offers an efficient msgpack-based interface to access data and to\nchange internal settings. Most configuration is stored inside MoaT-KV\nitself.\n\nStored data are **not** forced to be strings or binary sequences, but can\nbe anything that `MsgPack` supports. Keys to storage are multi-level and\nsupport string, integer/float, and tuple keys.\n\n\nNon-Features\n============\n\nMoaT-KV does not support data partitioning. Every node stores the whole\ndata set and can instantly deliver mostly-uptodate data.\n\nMoaT-KV does not have a disk-based storage backend. Periodic snapshots and\nevent logs can be used to quickly restore a system, if necessary.\n\nStatus\n======\n\nMoaT-KV is mostly stable. There are a lot of corner cases that don't\nhave tests yet.\n\nTODOs:\n* some services (esp. command line tools and runners) are under-tested\n* there's no good API for errors\n\nTODO\n====\n\n* clean up some of the more egregious command line mistakes\n\n* create a page for showcase-ing subprojects (knx owfs akumuli \u2026)\n\n* improve Home Assistant integration\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A distributed no-master key-value store",
    "version": "0.70.22",
    "project_urls": {
        "homepage": "https://m-o-a-t.org",
        "repository": "https://github.com/M-o-a-T/moat-kv"
    },
    "split_keywords": [
        "moat"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "60169102042662c034ed82b025dc7bad93dea343cce7b513f5940f1a1579ef1b",
                "md5": "7d42fcd93baddc21d68d5daee8353717",
                "sha256": "9ad49a2232e51d1ce977535eef2b6bf162b4805bd0a38326b4111e40d4751f23"
            },
            "downloads": -1,
            "filename": "moat_kv-0.70.22-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7d42fcd93baddc21d68d5daee8353717",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 126637,
            "upload_time": "2024-11-18T09:12:53",
            "upload_time_iso_8601": "2024-11-18T09:12:53.749844Z",
            "url": "https://files.pythonhosted.org/packages/60/16/9102042662c034ed82b025dc7bad93dea343cce7b513f5940f1a1579ef1b/moat_kv-0.70.22-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d29b9dfa897a229148c57bdbe33abf5ff45e4dc05ef59e1d168953c0dd78c73a",
                "md5": "b302b8bbee9a0de3c87e3bf5040ecd41",
                "sha256": "bac8e92fc21f29906270c7f739f9a7cc6f54fcf6cde5d0c28c0888ef7f468b1d"
            },
            "downloads": -1,
            "filename": "moat_kv-0.70.22.tar.gz",
            "has_sig": false,
            "md5_digest": "b302b8bbee9a0de3c87e3bf5040ecd41",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 178924,
            "upload_time": "2024-11-18T09:12:56",
            "upload_time_iso_8601": "2024-11-18T09:12:56.059077Z",
            "url": "https://files.pythonhosted.org/packages/d2/9b/9dfa897a229148c57bdbe33abf5ff45e4dc05ef59e1d168953c0dd78c73a/moat_kv-0.70.22.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-18 09:12:56",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "M-o-a-T",
    "github_project": "moat-kv",
    "travis_ci": true,
    "coveralls": true,
    "github_actions": false,
    "appveyor": true,
    "lcname": "moat-kv"
}
        
Elapsed time: 0.62699s