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+
๐ ๏ธ Installation
Prerequisites
- Python 3.9+
- pip
Quick Start
# 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
๐ 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
dbini-0.1.1.tar.gz
(14.9 kB
view details)
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
dbini-0.1.1-py3-none-any.whl
(13.9 kB
view details)
File details
Details for the file dbini-0.1.1.tar.gz.
File metadata
- Download URL: dbini-0.1.1.tar.gz
- Upload date:
- Size: 14.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4bea071da02b55ca6d4f8ee3f1e78b8b5ca603e344134a3df5148866b8aca77e
|
|
| MD5 |
7ca1e603b74a7949a2456785dbf27670
|
|
| BLAKE2b-256 |
bab821c645900547eedcecfd803a899294c9e1758791a10fcbeff76ac0590cf5
|
File details
Details for the file dbini-0.1.1-py3-none-any.whl.
File metadata
- Download URL: dbini-0.1.1-py3-none-any.whl
- Upload date:
- Size: 13.9 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 |
e2beac541644375e3151356eee8e8878e328c1bf2cda87c39ad2e7782d3c2f2c
|
|
| MD5 |
5f8cfb4731c370541d043d7feb02fb91
|
|
| BLAKE2b-256 |
d9a6f4ed6f72ef7dc7abfd9fb10a6cf67b48a1c7946deae3ec1ce6b184826c47
|