https://github.com/jart/verobject
Version controlled object database on Redis
https://github.com/jart/verobject
Last synced: 4 months ago
JSON representation
Version controlled object database on Redis
- Host: GitHub
- URL: https://github.com/jart/verobject
- Owner: jart
- Created: 2012-01-28T00:19:16.000Z (about 13 years ago)
- Default Branch: master
- Last Pushed: 2012-01-28T02:29:06.000Z (about 13 years ago)
- Last Synced: 2024-09-23T16:18:04.912Z (5 months ago)
- Language: Python
- Homepage:
- Size: 97.7 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
Awesome Lists containing this project
README
.. -*-rst-*-
===========
verobject
===========:name: verobject
:description: Version controlled object database on Redis
:copyright: © 2012 Justine Alexandra Roberts Tunney
:license: MITWhat Is This?
=============It's a key value store that keeps copies of past revisions.
Why you should use this
------------------------ You've already deployed Redis
- You don't ever want to lose data
- You like pythonic APIs
- You want the KVS to automatically pickle (or jsonify) your data
- You want something simple (140 source lines of code)
- You want something that works (70 lines of test code)Why you shouldn't use this
--------------------------- It's space inefficient. It doesn't compress revision deltas like git does.
- It doesn't support transactions or fancy save methods like zopeInstallation
============From folder::
sudo python setup.py install
From cheeseshop::
sudo pip install verobject
From git::
sudo pip install git+git://github.com/jart/verobject.git
Basic Usage
===========::
import datetime, verobject, redis
redis = redis.Redis()
table1 = verobject.Store('table1', redis=redis)table1['hk'] = {'hello': ['kitty', 'kitty', 'kitty']}
table1['ts'] = datetime.date(1984, 10, 31)
print table1['ts'], table1['hk']
del table1['ts']table1['vc'] = 'version1'
table1['vc'] = 'version2'
table1['vc'] = 'version3'
assert list(table1.versions('vc')) == ['version3', 'version2', 'version1']
assert table1.versions('vc')[0] == 'version3'
assert table1.versions('vc')[-1] == 'version1'