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.1.tar.gz
(13.4 kB
view details)
Built Distribution
jsonstore-1.3.1-py2.7.egg
(35.7 kB
view details)
File details
Details for the file jsonstore-1.3.1.tar.gz
.
File metadata
- Download URL: jsonstore-1.3.1.tar.gz
- Upload date:
- Size: 13.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6899def45ca9c4ac975008060747056cf187783ad2e2ae358994f6c3e9406124 |
|
MD5 | 75312e3431565a834b6075fa088e5afd |
|
BLAKE2b-256 | c135b3c39166e1eef71c8f7c42ed3f58272959bb63fb9223a15043d34d0bc0c9 |
File details
Details for the file jsonstore-1.3.1-py2.7.egg
.
File metadata
- Download URL: jsonstore-1.3.1-py2.7.egg
- Upload date:
- Size: 35.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | da3ca2c07b324fb01ce63ef7e93249eaafc9686a2d800d38e196041bc3285317 |
|
MD5 | c42e95c08e5bb3b2dff62345dc4f59c6 |
|
BLAKE2b-256 | 67d49691cb6260ca52d4eea6b299979d85135e5b4ef5e87f1b6a5ec2dd66935f |