Skip to content

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

License

Notifications You must be signed in to change notification settings

jflatdb/jflatdb

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": "[email protected]", "age": 25})

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

# Update and Delete
db.update({"name": "Akki"}, {"email": "[email protected]"})
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. 💾🚀

About

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

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Contributors 11

Languages