Skip to main content

Flexible immutable entity database

Project description

Savior Database

Embedded schema-less database library backed by LMDB.

Currently in development and not stable yet. The interface and disk format may change in future versions without notice. You probably shouldn't use it to store important data.

Permissively licensed with the ISC License.

Goals

  • provide a language-neutral disk format
  • utilize LMDB's properties like transactions, append-only writes, and zero-copy reads
  • provide intuitive schema-less entity modeling and querying interface
  • you shouldn't have to know what questions you want to ask about your data before you start storing it

Developer Interface

There are three actions you can perform on entities in a transaction:

  • create
  • fetch
  • update
  • query

An entity is conceptually like a dictionary with attributes and values.

A table is an isolated section of the database for storing entities, usually with a similar set of attributes.

Disk Format

All entities of the same type are stored in one inner LMDB database There is no guarantee that entities have a consistent schema.

Entities are stored on disk as a series of timestamped attribute changes.

  • key-value entries have the form (uuid, timestamp, attribute) -> value
  • uuid is an auto-generated entity ID
  • timestamp is an auto-generated timestamp of when the entry was appended
  • attribute and value are the updated entity key value entries

Data is not modified for updates, only appended to indicate the entity changed.

Project details


Download files

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

Source Distribution

savior-0.2.0.tar.gz (3.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

savior-0.2.0-py3-none-any.whl (4.4 kB view details)

Uploaded Python 3

File details

Details for the file savior-0.2.0.tar.gz.

File metadata

  • Download URL: savior-0.2.0.tar.gz
  • Upload date:
  • Size: 3.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3

File hashes

Hashes for savior-0.2.0.tar.gz
Algorithm Hash digest
SHA256 8198ea14363b3f11fd536f95976155ed7a7562b0f71b07abd8ac2b3a467f6498
MD5 46c6182f206c306d836f85b7bad04c63
BLAKE2b-256 2dee5cb07f110a9397b222fe6ab35007fb778fc218e2ba807501fdb2e7646852

See more details on using hashes here.

File details

Details for the file savior-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: savior-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 4.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3

File hashes

Hashes for savior-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 aea121e2dd092f680f0ae0adb966d4ea4455373cd6560d23c7e1e2964d43aa5d
MD5 e613391f187c6178cc2c3be640c8d527
BLAKE2b-256 f79a2b9df92a09627206efde7d514fa555b977d223d74b472eb2aaa7616627df

See more details on using hashes here.

Supported by

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