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 uuidis an auto-generated entity IDtimestampis an auto-generated timestamp of when the entry was appendedattributeandvalueare 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8198ea14363b3f11fd536f95976155ed7a7562b0f71b07abd8ac2b3a467f6498
|
|
| MD5 |
46c6182f206c306d836f85b7bad04c63
|
|
| BLAKE2b-256 |
2dee5cb07f110a9397b222fe6ab35007fb778fc218e2ba807501fdb2e7646852
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aea121e2dd092f680f0ae0adb966d4ea4455373cd6560d23c7e1e2964d43aa5d
|
|
| MD5 |
e613391f187c6178cc2c3be640c8d527
|
|
| BLAKE2b-256 |
f79a2b9df92a09627206efde7d514fa555b977d223d74b472eb2aaa7616627df
|