Welcome to DistKV!
DistKV is a master-less distributed key-value storage system. It circumvents the CAP theorem by assuming that keys are usually only changed by one node. It is resistant to partitioning and intended to be always-on; it might delay – but will not lose – updates even in a partitioned network.
DistKV 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
a MQTT 3.1 back-end that stores persistent data in DistKV, based on hbmqtt
API
DistKV offers an efficient msgpack-based interface to access data and to change internal settings. Most configuration is stored inside DistKV 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 list keys.
Non-Features
DistKV does not support data partitioning. Every node stores the whole data set and can instantly deliver mostly-uptodate data.
DistKV does not have a disk-based storage backend; periodic snapshots and event logs can be used to quickly restore a system, if necessary.
Status
DistKV 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
Changelog
0.41: the message monitor can do multiple subpaths and only reports initial-load-complete once
0.40: use asyncscope for running subsystems in a reasonable way
0.35: allow forgetting nodes (if they have no data attached)
0.30: major API refactoring: paths are now separate objects
TODO
update the whole ecosystem to anyio 2.0 (asyncclick asyncscope …)
clean up some of the more egregious command line mistakes
create a page for showcase-ing subprojects (distinv knx owfs akumuli …)
improve Home Assistant integration
Metadata
Release files for distkv 0.65.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| distkv-0.65.0.tar.gz | 179.5 kB | Without provenance | Details for distkv-0.65.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| distkv-0.65.0-py3-none-any.whl | Python 3 | none | any | Details for distkv-0.65.0-py3-none-any.whl |
Total release size: 331.6 kB
Release files / distkv-0.65.0.tar.gz
| Download URL | distkv-0.65.0.tar.gz |
|---|---|
| Size | 179.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
562dd6b4f6a8c3f372815fe66e4f85ab5ce999d2cefe79966487ca4a558a8ef5
|
|
BLAKE2b-256 checksum How to use checksums |
aa60cc1292bc676e7f622900eb28f6b2a5c45e8ac5d3cd612c3275cf50757f73
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.3.0 pkginfo/1.8.2 requests/2.25.1 setuptools/66.1.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.11.2
|
Release files / distkv-0.65.0-py3-none-any.whl
| Download URL | distkv-0.65.0-py3-none-any.whl |
|---|---|
| Size | 152.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
32cbf90e852773e8ab9f334357e7175c1d00ffdf1e54c59c0feea5fbc08e7fd5
|
|
BLAKE2b-256 checksum How to use checksums |
b2c6549caf5c376809e871cf1ed2cf315159c462be0de3fcd33d15288117d5f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.3.0 pkginfo/1.8.2 requests/2.25.1 setuptools/66.1.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.11.2
|
Security for distkv 0.65.0
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.
To learn more about protecting yourself from malicious actors, visit our package security documentation.