Zero-config NoSQL backend database as a Python package
Project description
๐ Table of Contents
- ๐ Features
- ๐ ๏ธ Installation
- ๐ป Usage
- ๐ Project Structure
- ๐๏ธ Built With
- ๐ค Contributing
- ๐ License
- ๐ Contact
- ๐ Acknowledgments
๐ Features
- โจ Zero-config backend database
- ๐ฅ Store JSON documents and files inside the project folder
- ๐ก๏ธ Secure atomic writes for data and files
- ๐ REST API & WebSocket support for any language
- ๐ฆ Self-contained Python package
- โก Works in Python 3.9+
- ๐ CRUD operations for collections and documents
- ๐ผ๏ธ File storage and retrieval
- โก Real-time WebSocket updates for WAL events
- ๐ Query with filters and limits
๐ ๏ธ Installation
Prerequisites
- Python 3.9+
- pip
Quick Start
# Install from PyPI
pip install dbini
# Or install from local repo
# Clone the repository
# git clone https://github.com/Binidu01/dbini.git
# Navigate to project directory
# cd dbini
# (Optional) Create virtual environment
# python -m venv venv
# source venv/bin/activate # On Windows: venv\Scripts\activate
# Install the package locally
# pip install .
# Run a test script
python examples/test_dbini.py
๐ป Usage
As Local Database
from dbini import DBini
db = DBini("myproject")
user_id = db.collection("users").add({"name": "Alice", "age": 22})
print("Created user:", user_id)
# Query documents
for doc in db.collection("users").find({"age": 22}):
print(doc)
# Save image/file
file_id = db.save_file("avatar.png")
db.collection("users").update(user_id, {"avatar": file_id})
As API Server
from dbini.server import DBiniServer
server = DBiniServer("myproject")
server.serve(port=8080)
Endpoints Example:
POST /v1/{collection}/documentsโ Create documentPOST /v1/filesโ Upload file- All data stays inside the project folder.
๐ Project Structure
Example project layout when using dbini:
myproject/
โโ data/
โ โโ collections/
โ โโ users/
โ โโ <uuid>.json
โโ files/
โ โโ <uuid>.png
โโ meta/
โโ project.json
collections/โ stores JSON documents per collectionfiles/โ stores images or other files uploadedmeta/project.jsonโ optional project settings
๐๏ธ Built With
- Python - Core language
- FastAPI - REST API server
- Uvicorn - ASGI server
๐ค Contributing
Contributions are welcome!
- Fork the Project
- Create your Feature Branch
git checkout -b feature/AmazingFeature - Commit your Changes
git commit -m "Add AmazingFeature" - Push to the Branch
git push origin feature/AmazingFeature - Open a Pull Request
๐ License
This project is licensed under the MIT License - see the LICENSE file.
๐ Contact
Binidu01 - GitHub Profile
Project Link: https://github.com/Binidu01/dbini
PyPI Link: https://pypi.org/project/dbini
๐ Acknowledgments
- Thanks to all contributors who helped this project grow
- Built with โค๏ธ and lots of โ
- Inspired by Firebase and modern local-first backends
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
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 dbini-0.1.2.tar.gz.
File metadata
- Download URL: dbini-0.1.2.tar.gz
- Upload date:
- Size: 15.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd6e5cfce92d1838e1f420a02d74c976db6f8bb49e6cc83b4da3ae3f7e7ef29f
|
|
| MD5 |
6d2ebef4f2a0e61524d098a5c590ca70
|
|
| BLAKE2b-256 |
caa4fb892063c70656c650781e8feaefdec00afb9b15529888f160badf01b23c
|
File details
Details for the file dbini-0.1.2-py3-none-any.whl.
File metadata
- Download URL: dbini-0.1.2-py3-none-any.whl
- Upload date:
- Size: 14.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a9dd17b3c825ac29a1d4ced68619d2850a49276d2765d2101fc32533ceea342
|
|
| MD5 |
46e61fc0b2a20cc3d4768e2fc550f32c
|
|
| BLAKE2b-256 |
7163db743df18d9dbdd38542af424a33d0b2dcb27aef2de70f0348bc364d5337
|