Skip to main content

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.

Metadata

Release files for jsonstore 1.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jsonstore 1.3.1
File Size Uploaded Provenance Actions
jsonstore-1.3.1.tar.gz 13.4 kB Without provenance Details for jsonstore-1.3.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for jsonstore 1.3.1
File Interpreter ABI Platform Actions
jsonstore-1.3.1-py2.7.egg Legacy Egg format - - Details for jsonstore-1.3.1-py2.7.egg

Total release size: 49.1 kB

Release files / jsonstore-1.3.1.tar.gz

Download URL jsonstore-1.3.1.tar.gz
Size 13.4 kB
Tags Source
SHA-256 checksum
How to use checksums
6899def45ca9c4ac975008060747056cf187783ad2e2ae358994f6c3e9406124
BLAKE2b-256 checksum
How to use checksums
c135b3c39166e1eef71c8f7c42ed3f58272959bb63fb9223a15043d34d0bc0c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / jsonstore-1.3.1-py2.7.egg

Download URL jsonstore-1.3.1-py2.7.egg
Size 35.7 kB
Tags Egg
SHA-256 checksum
How to use checksums
da3ca2c07b324fb01ce63ef7e93249eaafc9686a2d800d38e196041bc3285317
BLAKE2b-256 checksum
How to use checksums
67d49691cb6260ca52d4eea6b299979d85135e5b4ef5e87f1b6a5ec2dd66935f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for jsonstore 1.3.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page