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 is supported. This note will only be visible to 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.

LicenseContributorsIssuesStarsDownloadsHacktoberfest


📚 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

FeatureDescriptionDemo
🧩 Flat-File SimplicityStore data in plain JSON filesFlat JSON Files
⚙️ Persistent IndexingFast queries, no rebuild on loadFast Indexing
🔍 Powerful Query Engine$gt, $lt, $in, $like, $betweenQuery Engine Demo
🔒 Encryption & ValidationOptional AES encryption & schema constraintsEncryption Demo
🧠 Async & TransactionsAtomic commits, async-safe operationsTransactions Demo
🛠 Zero Dependencies100% pure PythonZero Dependencies
💡 Extensible DesignAdd plugins, custom storages, or new data typesExtensible Demo

📦 Installation

pip install jflatdb

or install from source:

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

⚡ Quick Start

fromjflatdb.databaseimportDatabase# Initialize with optional encryptiondb=Database("users.json", password="your-password")
# Insert datadb.insert({"name": "Akki", "email": "akki@example.com", "age": 25})
# Query with conditionsusers=db.find({"age": {"$gt": 18, "$lt": 30}})
print(users)
# Update and Deletedb.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. jflatdbjflatdbPublic

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

    Python 7 13