A lightweight, file-based JSON database with SQL-like interface
Project description
JSONQL-DB — Your Lightweight JSON Database
SQLite, but with human-readable JSON files.
Zero setup. Zero server. Just pure Python and transparency.
✨ Why JSONQL-DB?
| Feature | SQLite | JSONQL-DB |
|---|---|---|
| Storage | Binary | Human-readable JSON |
| Setup | Install | Zero install (pure Python) |
| Transparency | Opaque | Everything is a file |
| Ideal for | Heavy apps | Prototypes, AV tools, edge devices, indie devs |
✅ No server • ✅ Thread-safe • ✅ SQL-like queries • ✅ < 300 lines core
⚠️ Not related to
json-qlorjsonql.js.org— those are JSON query utilities, not databases.
🚀 Install
pip install jsonql-db
For the GUI browser (Flet-based):
pip install "jsonql-db[browser]"
Quick Start
import jsonql
# Connect (creates folder if needed)
db = jsonql.connect("my_app_data")
# Insert
db.insert("devices", {"name": "Projector", "room": "A101", "ip": "192.168.1.10"})
# Query
devices = db.select("devices", {"room": "A101"})
print(devices)
# SQL-like
result = db.query("SELECT * FROM devices WHERE room = 'A101'")
print(result)
🖥️ GUI Browser Launch the built-in browser:
python -m jsonql.browser
🧠 Philosophy “If it’s not human-readable, it’s not transparent.” JSONQL-DB is for developers who value simplicity, portability, and control.
Perfect for:
- Audiovisual integrators (Crestron, QSC, Extron)
- IoT edge logging
- Local Flet/PyQt apps
- Teaching database basics
📜 License MIT — see LICENSE
demo.py
import jsonql
def main(): db = jsonql.connect("demo_db")
# Insert
dev_id = db.insert("devices", {
"name": "Epson L710U",
"type": "projector",
"room": "A101",
"ip": "192.168.10.50"
})
print(f"✅ Inserted device ID: {dev_id}")
# Select
devices = db.select("devices", {"room": "A101"})
print("🔍 Devices in A101:", devices)
# SQL Query
result = db.query("SELECT * FROM devices WHERE type = 'projector'")
print("💻 SQL Result:", result)
if name == "main": main()
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jsonql_db-0.1.2.tar.gz.
File metadata
- Download URL: jsonql_db-0.1.2.tar.gz
- Upload date:
- Size: 9.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb1c09cf18c5132bdeb4c7166dd18ffd01d23fd6c08a8d469e1eed072273ec1f
|
|
| MD5 |
e041b1498d16c50c91a7aa80521d2325
|
|
| BLAKE2b-256 |
51dc91e3f0bd9ae045da5c775a4798451e744d79936d8ad38bc4da049bedd2e2
|
File details
Details for the file jsonql_db-0.1.2-py3-none-any.whl.
File metadata
- Download URL: jsonql_db-0.1.2-py3-none-any.whl
- Upload date:
- Size: 9.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
60ca856c286906ad84ba39bf02d6d890af885451b9afdd5df1cb439e9baeb65e
|
|
| MD5 |
ef3966bd56650f645037494408723c54
|
|
| BLAKE2b-256 |
319935fce9e538767fd0b48bd04dbba11aea07880fcedb0f618014fb63fb0214
|