Skip to main content

SQLite based queryable python indexes for dicts and lists

Project description

LiteIndex

in-process, thread and process safe, easy to use, query-able object storage implenetation for Python

Some use cases, benchmarks and examples:

  • persistent, fast in-process caches and query-able queues
  • store and query large number of records without using up memory
  • ultra-fast, query-able file storage (faster than creating files on disk and way better for querying)
  • exchange data between threads or processes easily
  • store application data locally in easy to query and stable format
  • Trigger threads/ processes with your custom functions on any specific updates or deletes (combined with gevent or ray, this allows for a extremely easy to use and deploy sqs + lambda like pipeline)
  • easily import from csv, tsv, jsonl, any iterable and run queries
pip install --upgrade liteindex

DefinedIndex

  • Documentation
  • schema has to be specified when creating a new DefinedIndex
  • Any python object can be stored in DefinedIndex
  • Query language is copy of mongodb queries. All queries are documented.
  • Querying can be done on string, number, boolean, json, datetime fields.
  • Math can be done on number fields
  • blob values can be queried for equality (same file), size.
  • other values can only be set, deleted, updated. Cannot be queried upon.
  • Insertion order is preserved
from liteindex import DefinedIndex

user_details_schema = {
    "name": "string",
    "age": "number",
    "password": "string",
    "verified": "boolean",
    "address_details": "json",
    "profile_picture": "blob",
    "tag_line": "string",
    "tag_line_embedding": "other",
    "birth_day": "datetime"
}

# db path defaults to memory
index = DefinedIndex(
            name="user_details",
            schema=schema,
            db_path="./test_db.liteindex"
        )

AnyIndex (In development)

  • Like mongodb, any python dict can be inserted at run time
  • Doesn't need pre-defined structure unlike DefinedIndex

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

liteindex-0.0.2.dev20.tar.gz (15.2 kB view hashes)

Uploaded Source

Built Distribution

liteindex-0.0.2.dev20-py3-none-any.whl (14.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page