A Python implementation of a rudimentary key/value server.

David Blume David Blume Print the index page with dynamically calculated column widths. 10a9f44 @ 2016-09-11 11:18:35
.htaccess first commit 2016-09-08 23:30:02
LICENSE.txt Improve the documentation a little. 2016-09-09 10:52:19
README.md Suggest new installations don't expose the auth token. 2016-09-09 17:00:18
auth_sample.txt first commit 2016-09-08 23:30:02
filelock.py first commit 2016-09-08 23:30:02
index.py Print the index page with dynamically calculated column widths. 2016-09-11 11:18:35
texttime.py Give Björn Lindqvist credit for texttime.py 2016-09-09 15:38:30
README.md

Key Value Store

kvs is a rudimentary key/value store written in Python.

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://USERNAME@dlma.com/~/git/kvs.git

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:

https://kvs.dlma.com/?k=1GM35N000010

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.

https://kvs.dlma.com/?k=1GM35N000010,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.