All Projects → nitipit → shelfdb

nitipit / shelfdb

Licence: MIT license
A tiny documents database for Python

Programming Languages

python
139335 projects - #7 most used programming language
stylus
462 projects
HTML
75241 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to shelfdb

Tiedot
A rudimentary implementation of a basic document (NoSQL) database in Go
Stars: ✭ 2,643 (+7451.43%)
Mutual labels:  nosql
NoSQLDataEngineering
NoSQL Data Engineering
Stars: ✭ 25 (-28.57%)
Mutual labels:  nosql
yserial
NoSQL y_serial Python module – warehouse compressed objects with SQLite
Stars: ✭ 17 (-51.43%)
Mutual labels:  nosql
Data
ATK Data - Data Access Framework for high-latency databases (Cloud SQL/NoSQL).
Stars: ✭ 243 (+594.29%)
Mutual labels:  nosql
Rxdb
🔄 A client side, offline-first, reactive database for JavaScript Applications
Stars: ✭ 16,670 (+47528.57%)
Mutual labels:  nosql
Cakebase
Cakebase is an asynchronous json database for nodejs.
Stars: ✭ 28 (-20%)
Mutual labels:  nosql
Db
Data access layer for PostgreSQL, CockroachDB, MySQL, SQLite and MongoDB with ORM-like features.
Stars: ✭ 2,832 (+7991.43%)
Mutual labels:  nosql
MochaDB
A .NET ACID RDBMS and NoSQL(with mods/tools) database.
Stars: ✭ 19 (-45.71%)
Mutual labels:  nosql
MongoDB-University
Repo for All MongoDB University Courses
Stars: ✭ 102 (+191.43%)
Mutual labels:  nosql
hocassian-people-neo4j
NoSQL可视化人脉图谱项目:非关系型数据库作为更符合人脑记忆的数据展现形式,在未来理论会成为应用界的主流,希望该项目能够成为推动HelpDesk、数据可视化、数据看板等IT基础能力持续降低上手门槛的起点。
Stars: ✭ 26 (-25.71%)
Mutual labels:  nosql
Eshop
Eshop + Content Management System (CMS) written in Node.js / Total.js.
Stars: ✭ 243 (+594.29%)
Mutual labels:  nosql
Hibari
Hibari is a production-ready, distributed, ordered key-value, big data store. Hibari uses chain replication for strong consistency, high-availability, and durability. Hibari has excellent performance especially for read and large value operations.
Stars: ✭ 253 (+622.86%)
Mutual labels:  nosql
gorm-mongodb
GORM for MongoDB
Stars: ✭ 58 (+65.71%)
Mutual labels:  nosql
Ravendb
ACID Document Database
Stars: ✭ 2,870 (+8100%)
Mutual labels:  nosql
community.mongodb
MongoDB Ansible Collection
Stars: ✭ 75 (+114.29%)
Mutual labels:  nosql
Angularmaterialfirebase
🔥 Full stack starter app with Angular 8, Material Design and Firebase (+ demo)
Stars: ✭ 229 (+554.29%)
Mutual labels:  nosql
arangors
Easy to use rust driver for arangoDB
Stars: ✭ 120 (+242.86%)
Mutual labels:  nosql
solr
Apache Solr open-source search software
Stars: ✭ 651 (+1760%)
Mutual labels:  nosql
docs
Source code of the ArangoDB online documentation
Stars: ✭ 18 (-48.57%)
Mutual labels:  nosql
simpledbm
SimpleDBM is an Open Source Multi-Threaded Embeddable Transactional Database Engine in Java.
Stars: ✭ 51 (+45.71%)
Mutual labels:  nosql

Shelf DB

Introduction

Shelf DB is a tiny document database for Python to stores documents or JSON-like data.

Get it

$ pip install shelfdb shelfquery

Start asyncio server

$ shelfdb
Serving on ('127.0.0.1', 17000)
Database : db
pid : 12359

uvloop built-in already to make it faster. See uvloop.

Sync/Async query client through network.

import shelfquery

# Sync client point to 127.0.0.1:17000
db = shelfquery.db()

# Make it async client
db.asyncio()

# Make it sync client again
db.sync()

Store data

db.shelf('note').insert({
    'title': 'Shelf DB',
    'content': 'Simple note',
    'datetime': datetime.utcnow()})

Flexible query API with similar syntax

db.shelf('note')\
    .filter(lambda note:
        note['title'] == 'Shelf DB')\
    .sort(key=lambda note: note['datetime'])
    .run()

No need to learn more syntax. Let's just query using filter, slice, sort, map, reduce which almost the same to Python built-in functions.

Regular expression

Python reqular expression re can be use inside query function

import re
db.shelf('note')\
    .filter(lambda note:
        re.match(r'.*DB$', note['title']))\
    .run()

Tiny

shelfdb ~ 12kB shelfquery ~ 4kB

Runtime code is small, easy to install. Shelf DB also works on Raspberry Pi.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].