Skip to main content

Zero-config NoSQL backend database as a Python package

Project description

dbini

Zero-config NoSQL backend database as a Python package

Python PyPI Stars Forks Issues License


๐Ÿ“‹ Table of Contents


๐Ÿš€ 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 document
  • POST /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 collection
  • files/ โ†’ stores images or other files uploaded
  • meta/project.json โ†’ optional project settings

๐Ÿ—๏ธ Built With

  • Python - Core language
  • FastAPI - REST API server
  • Uvicorn - ASGI server

๐Ÿค Contributing

Contributions are welcome!

  1. Fork the Project
  2. Create your Feature Branch git checkout -b feature/AmazingFeature
  3. Commit your Changes git commit -m "Add AmazingFeature"
  4. Push to the Branch git push origin feature/AmazingFeature
  5. 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

โฌ† Back to Top

Made with โค๏ธ by Binidu01

โญ Star this repo if you find it useful!

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

dbini-0.1.1.tar.gz (14.9 kB view details)

Uploaded Source

Built Distribution

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

dbini-0.1.1-py3-none-any.whl (13.9 kB view details)

Uploaded Python 3

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

Hashes for dbini-0.1.1.tar.gz
Algorithm Hash digest
SHA256 4bea071da02b55ca6d4f8ee3f1e78b8b5ca603e344134a3df5148866b8aca77e
MD5 7ca1e603b74a7949a2456785dbf27670
BLAKE2b-256 bab821c645900547eedcecfd803a899294c9e1758791a10fcbeff76ac0590cf5

See more details on using hashes here.

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

Hashes for dbini-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e2beac541644375e3151356eee8e8878e328c1bf2cda87c39ad2e7782d3c2f2c
MD5 5f8cfb4731c370541d043d7feb02fb91
BLAKE2b-256 d9a6f4ed6f72ef7dc7abfd9fb10a6cf67b48a1c7946deae3ec1ce6b184826c47

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