Skip to main content
Help us improve PyPI by participating in user testing. All experience levels needed!

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

This version
History Node

1.3.1

History Node

1.3

History Node

1.2.3

History Node

1.2.1

History Node

1.2

History Node

1.1.6

History Node

1.1.5

History Node

1.1.4

History Node

1.1.3

History Node

1.1.2

History Node

1.1.1

History Node

1.1.0

History Node

1.0.2

History Node

1.0.1

History Node

1.0

History Node

0.3

History Node

0.3a7

History Node

0.3a6

History Node

0.3a5

History Node

0.3a4

History Node

0.3a3

History Node

0.3a2

History Node

0.3a1

History Node

0.2.1

History Node

0.2

History Node

0.1.2

History Node

0.1.1

History Node

0.1dev

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
jsonstore-1.3.1-py2.7.egg (35.7 kB) Copy SHA256 hash SHA256 Egg 2.7 Mar 1, 2013
jsonstore-1.3.1.tar.gz (13.4 kB) Copy SHA256 hash SHA256 Source None Mar 1, 2013

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page