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.0.tar.gz (4.7 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.0-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

Details for the file dbini-0.1.0.tar.gz.

File metadata

  • Download URL: dbini-0.1.0.tar.gz
  • Upload date:
  • Size: 4.7 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.0.tar.gz
Algorithm Hash digest
SHA256 12db917a2460cba6a25e4d8f92a7d56331de5b99ad1cf04376973bf24a4f7ff8
MD5 91eac3375cab56322de51d1f2cc72da1
BLAKE2b-256 d3bbe9222e2c9f05ff289fdeaa48a997cf531bd6fd3e7802a5ab0156a480f520

See more details on using hashes here.

File details

Details for the file dbini-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: dbini-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.2 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c23ab155434bc9911cfbaecfcdc1abb5cfbc788d19f3604ad65ea59c807d1738
MD5 4d1bdbe30421a6356fbde63eee66d73e
BLAKE2b-256 ee9f5e59e22d8f56fa39c133d3be1e38107c7886c4a8e146a16fe3f6b308a398

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