Skip to content
View jflatdb's full-sized avatar

Block or report jflatdb

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don't include any personal information such as legal names or email addresses. Markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
jflatdb/README.md

JFlatDB Logo

jflatdb

The next-gen lightweight JSON database for Python β€” fast, secure, and schema-aware.
Store and query data instantly with zero setup, pure Python power, and human-readable JSON files.

License Contributors Issues Stars Downloads Hacktoberfest


πŸ“š Table of Contents


πŸš€ Overview

jflatdb is a file-based, schema-aware JSON database system that combines the simplicity of NoSQL with powerful query and indexing features inspired by SQL β€” all in pure Python.

No servers. No setup. Just plug, code, and store.

Perfect for developers, students, or small apps that need fast, secure, local data storage with minimal dependencies.


⚑ Features

Feature Description Demo
🧩 Flat-File Simplicity Store data in plain JSON files Flat JSON Files
βš™οΈ Persistent Indexing Fast queries, no rebuild on load Fast Indexing
πŸ” Powerful Query Engine $gt, $lt, $in, $like, $between Query Engine Demo
πŸ”’ Encryption & Validation Optional AES encryption & schema constraints Encryption Demo
🧠 Async & Transactions Atomic commits, async-safe operations Transactions Demo
πŸ›  Zero Dependencies 100% pure Python Zero Dependencies
πŸ’‘ Extensible Design Add plugins, custom storages, or new data types Extensible Demo

πŸ“¦ Installation

pip install jflatdb

or install from source:

git clone https://github.com/jflatdb/jflatdb.git
cd jflatdb
pip install .

⚑ Quick Start

from jflatdb.database import Database

# Initialize with optional encryption
db = Database("users.json", password="your-password")

# Insert data
db.insert({"name": "Akki", "email": "akki@example.com", "age": 25})

# Query with conditions
users = db.find({"age": {"$gt": 18, "$lt": 30}})
print(users)

# Update and Delete
db.update({"name": "Akki"}, {"email": "new@email.com"})
db.delete({"name": "Akki"})

πŸ“ Project Structure

jflatdb/
β”œβ”€β”€ jflatdb/
β”‚   β”œβ”€β”€ utils/
β”‚   β”œβ”€β”€ exceptions/
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ cli.py
β”‚   β”œβ”€β”€ database.py
β”‚   β”œβ”€β”€ indexer.py
β”‚   β”œβ”€β”€ query_builder.py
β”‚   β”œβ”€β”€ query_cache.py
β”‚   β”œβ”€β”€ query_engine.py
β”‚   β”œβ”€β”€ schema.py
β”‚   β”œβ”€β”€ schema_migration.py
β”‚   β”œβ”€β”€ schema_version.py
β”‚   β”œβ”€β”€ storage.py
β”‚   β”œβ”€β”€ transation.py
β”‚   └── security.py
β”œβ”€β”€ examples/
β”œβ”€β”€ tests/
β”œβ”€β”€ README.md
β”œβ”€β”€ setup.py
└── LICENSE

πŸŽ‰ Contributors Leaderboard


🀝 Contributing

We welcome all contributions! To get started:

  1. Fork the repository
  2. Create a new branch β†’ git checkout -b feature-name
  3. Commit your changes β†’ git commit -m "Add feature"
  4. Push your branch β†’ git push origin feature-name
  5. Open a Pull Request

Check our CONTRIBUTING.md for more details.


πŸ“ˆ Repo Activity

JFlatDB Repo Activity


We couldn't have done this without you.


πŸ“„ License

This project is licensed under the MIT License β€” see the LICENSE file for details.


πŸ’¬ Join the Community


πŸ™Œ Credits

Developed and maintained by Akki Inspired by TinyDB, SQLite, and the open-source spirit.


πŸ™ Support & Contributions

Your support keeps this project growing! 🌱 If you like jflatdb, please ⭐ star the repo, share it, and help more developers discover it.

Let’s redefine simple data storage β€” one JSON file at a time. πŸ’ΎπŸš€

Pinned Loading

  1. jflatdb jflatdb Public

    jflatdb β€” The next-gen lightweight JSON database for Python, built for speed, simplicity, and secure local data management.

    Python 7 13