Skip to main content

JFlatDB Logo

jflatdb

๐Ÿš€ jflatdb is a lightweight, file-based JSON database system designed for developers who want the simplicity of NoSQL with query features inspired by SQL.
No servers, no external dependencies โ€” just plug-and-play storage with indexing, queries, and persistence.

License Contributors Issues Stars Downloads License Hacktoberfest


๐Ÿ“‘ Table of Contents


๐Ÿš€ Features

  • ๐Ÿ“ฆ JSON-powered storage โ€“ human-readable, lightweight, and portable
  • โšก Fast querying with indexes โ€“ supports filters, conditions, and sorting
  • ๐Ÿ“‘ Built-in functions โ€“ string, date/time, and aggregation functions
  • ๐Ÿ”’ Security & validation โ€“ encryption, constraints, and safe writes
  • ๐Ÿ›  Zero setup โ€“ no database server needed, runs in pure Python

๐Ÿ“ฆ Installation

pip install jflatdb

or from source

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

Usage

from jflatdb.database import Database

db = Database("users.json", password="your-password")

# Create or insert data
db.insert({"name": "Akki", "email": "akki@example.com"})

# Find records
users = db.find({"name": "Akki"})

# Advanced queries with operators
# Greater than, less than, etc.
young_users = db.find({"age": {"$gt": 18, "$lt": 30}})
# IN operator
specific_ids = db.find({"id": {"$in": [1, 2, 3]}})
# LIKE for pattern matching
names_starting_with_a = db.find({"name": {"$like": "A%"}})
# BETWEEN
ages_in_range = db.find({"age": {"$between": [20, 30]}})

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

# Delete records
db.delete({"name": "Akki"})

๐Ÿ“ Project Structure

jflatdb/
โ”œโ”€โ”€ jflatdb/
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”œโ”€โ”€ database.py
โ”‚   โ”œโ”€โ”€ query_engine.py
โ”‚   โ””โ”€โ”€ indexing.py
|    โ”œโ”€โ”€ scheme.py
โ”œโ”€โ”€ tests/
โ”œโ”€โ”€ examples/
โ”œโ”€โ”€ setup.py
โ”œโ”€โ”€ README.md
โ””โ”€โ”€ LICENSE

๐ŸŽ‰ Contributors Leaderboard

๐Ÿค Contributing

We welcome contributions from the community!

To get started:

Fork the repo

Create a new branch: git checkout -b feature-name

Make your changes and commit: git commit -m 'Add feature'

Push to your branch: git push origin feature-name

Open a Pull Request

Please read our CONTRIBUTING.md for full guidelines.

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ’ฌ Join the Community


๐Ÿ™Œ Credits

Developed and maintained by Akki.


๐Ÿ™ Support & Contributions

Your contributions make this project better โ€” whether it's reporting a bug, suggesting a feature, improving the documentation, or writing code. We welcome developers of all levels to participate!

If you like this project, consider โญ starring it and sharing it with others.
Together, letโ€™s build something awesome with jflatdb.

Happy coding! ๐Ÿš€

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jflatdb-1.0.1.tar.gz (29.7 kB view details)

Uploaded Source

Built Distribution

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

jflatdb-1.0.1-py3-none-any.whl (20.7 kB view details)

Uploaded Python 3

File details

Details for the file jflatdb-1.0.1.tar.gz.

File metadata

  • Download URL: jflatdb-1.0.1.tar.gz
  • Upload date:
  • Size: 29.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for jflatdb-1.0.1.tar.gz
Algorithm Hash digest
SHA256 7f07dd2ad797e6f086e29ce9efdfb41510e31246484490492db62af54049d821
MD5 afd5f4ebec080a239d0454329e1a983c
BLAKE2b-256 ed23a1d4790270fe86d6aa4f6b9f3d17076c4b965833b553c044b6ba6e079391

See more details on using hashes here.

Provenance

The following attestation bundles were made for jflatdb-1.0.1.tar.gz:

Publisher: publish.yml on jflatdb/jflatdb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file jflatdb-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: jflatdb-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 20.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for jflatdb-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0012a9be248973e13d80e4de62a906d06e43c76d537aeec895b8f9da733c059c
MD5 7ae0834b8879bc753001c08c92ef13a1
BLAKE2b-256 fe0dcf5b587e744d5b26d9974abaeb4d86d23ca739a3e23e4a811e071c9c0ab6

See more details on using hashes here.

Provenance

The following attestation bundles were made for jflatdb-1.0.1-py3-none-any.whl:

Publisher: publish.yml on jflatdb/jflatdb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 files

0.0.3

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page