Skip to main content

A lightweight JSON-based flat file database system.

Project description

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! ๐Ÿš€

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

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.

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