name mode size
.htaccess 100644 161B
LICENSE.txt 100644 1.09kB 100644 2.43kB
auth_sample.txt 100644 22B 100644 2.67kB 100755 6.4kB 100644 3.45kB
# Key Value Store kvs is an artisanal, hand-crafted online key/value store sourced by a California native. It is written in Python and yet harkens back to a simpler era before Redis and Riak. ## Dependencies and Guarantees kvs uses a local file for its backing store, and stores the data in the human-friendly [YAML]( format. Its ACID properties are as follows: * **Atomicity**: Either all tuples in a transaction are successfully saved or none are. * **Consistency**: Only valid states are saved, and saves are atomic. * **Isolation**: All transactions are serialized. * **Durability**: System failure or restart won't break the store. Store writes are atomic. # Getting the project You can get a copy of this project by clicking on the [ZIP]( or [TAR]( buttons near the top right of the GitList web page. If you're me, and you want to contribute to the repo, then you can clone it like so: git clone ssh:// # Building it 1. Enable Python pages at your web server. See [How to use Python in the web]( My configuration is for Apache, hence the .htaccess file. 2. Move auth\_sample.txt to auth.txt, and replace `yourauthorizationhere` with a passcode you choose. chmod 600 the file or deny access to it via .htaccess. 3. Optional: Use secure HTTP. I recommend getting a free SSL certificate from [Let's Encrypt]( 4. If you don't have the YAML module, pip install pyyaml. # Using it Here is [a live instance that serves an index page]( You can send a key to get a value like so: Special use case, here's how to get the value for the most-recently updated key of a list of keys. The list could contain any number of keys, but only one value will be returned.,1GU44N010910 Here's the recipe for a cURL command to store a new value for a key: curl --data "key=value&auth={authorization}" https://{url} Here's [the source code for a Roku channel client of such a service]( # Is it any good? [Yes]( # Licence This software uses the [MIT license](