Skip to main content

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.

PyPI License Python

✨ 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-ql or jsonql.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

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

jsonql_db-0.1.2.tar.gz (9.9 kB view details)

Uploaded Source

Built Distribution

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

jsonql_db-0.1.2-py3-none-any.whl (9.3 kB view details)

Uploaded Python 3

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

Hashes for jsonql_db-0.1.2.tar.gz
Algorithm Hash digest
SHA256 cb1c09cf18c5132bdeb4c7166dd18ffd01d23fd6c08a8d469e1eed072273ec1f
MD5 e041b1498d16c50c91a7aa80521d2325
BLAKE2b-256 51dc91e3f0bd9ae045da5c775a4798451e744d79936d8ad38bc4da049bedd2e2

See more details on using hashes here.

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

Hashes for jsonql_db-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 60ca856c286906ad84ba39bf02d6d890af885451b9afdd5df1cb439e9baeb65e
MD5 ef3966bd56650f645037494408723c54
BLAKE2b-256 319935fce9e538767fd0b48bd04dbba11aea07880fcedb0f618014fb63fb0214

See more details on using hashes here.

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