JSONStore is a lightweight database for JSON documents exposed through HTTP.
Project description
A schema-free database for JSON documents, exposed through a REST API, with searching implemented using a flexible matching algorithm.
A quick start:
$ pip install jsonstore $ jsonstore * Running on http://127.0.0.1:31415/
Creating a document:
$ curl -v http://127.0.0.1:31415/ -d '{"foo":"bar","baz":{"count":42}}' < HTTP/1.0 201 Created < Location: http://127.0.0.1:31415/72dcf1ee-8efd-4d7f-8ca1-2eda2bf85099 < etag: "348f16ee0c0856d853117bde8413a4270d1d3487" { "foo": "bar", "baz": { "count": 42 }, "__id__": "72dcf1ee-8efd-4d7f-8ca1-2eda2bf85099", "__updated__": "2012-05-09T20:33:36.928075+00:00" }
Searching the store:
$ curl -g 'http://127.0.0.1:31415/{"baz":{"count":"GreaterThan(40)"}}' [ { "foo": "bar", "baz": { "count": 42 }, "__id__": "72dcf1ee-8efd-4d7f-8ca1-2eda2bf85099", "__updated__": "2012-05-09T20:33:36.928075+00:00" } ]
It also has a Python API. The above code would be done like this:
>>> from jsonstore.client import EntryManager
>>> from jsonstore.operators import GreaterThan
>>> em = EntryManager('http://127.0.0.1:31415/')
>>> em.create(foo="bar", "baz"={"count": 42})
>>> results = em.search(baz={"count": GreaterThan(40)})
Or like this, just for fun:
>>> from jsonstore.dsl import Store
>>> store = Store('http://127.0.0.1:31415/')
>>> { "foo": "bar", "baz": { "count": 42 } } >> store
>>> results = store | { "baz": { "count": GreaterThan(40) } }
Please see the website for more examples.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
jsonstore-1.3.tar.gz
(13.4 kB
view details)
Built Distribution
jsonstore-1.3-py2.7.egg
(35.6 kB
view details)
File details
Details for the file jsonstore-1.3.tar.gz
.
File metadata
- Download URL: jsonstore-1.3.tar.gz
- Upload date:
- Size: 13.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7cc509c93267abda1c7696ebc47e11caa88f078c1d224856da23e87c99190f8b |
|
MD5 | b5b65b6236bba5260f346463af42a4c3 |
|
BLAKE2b-256 | 53a19f8fe97d93f06e52ce85f3a7d71b7a27b694ee9b9b083553c8a20b3fcb6e |
Provenance
File details
Details for the file jsonstore-1.3-py2.7.egg
.
File metadata
- Download URL: jsonstore-1.3-py2.7.egg
- Upload date:
- Size: 35.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 080cac82f15a445953ce2ee77a56e4b34d6594ba566142dc87e7c433e9f251b7 |
|
MD5 | 15b6e87b7104507ddec3e0a81206e047 |
|
BLAKE2b-256 | 3d6a7099ec9a595a92cbc46a9153a08063fc439fda872bd9289a5a7c5082adc7 |