Skip to main content

parad

Encrypted local-first SQLite with Telegram cloud sync — a git-like, zero-cost workflow database. Telegram is the disk: every change you commit becomes a version-stored snapshot you can revert to anytime.

Install

pip install parad

Quick Start

Python SDK (developer workflow — auto-sync on by default)

Connect with a postgres-like connection string, write SQL offline, and the sync daemon version-stores your changes automatically. No manual push needed.

from parad import connect

# Auto-login (email:password), auto-provision project + database on the
# gateway, open/create the local encrypted SQLite file.
db = connect(url="parad://alice@example.com:secretpw@local/myproj/mydb?passphrase=secret")

# Build SQL offline like any SQLite database ...
db.execute("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)")
db.execute("INSERT INTO users (name) VALUES (?)", ("alice",))
db.commit()

# ... and it's already pushed to the cloud as a new snapshot version (~2s).
# Revert anytime (from the CLI):
# !parad rollback 1

db.close()

Offline? Keep writing — changes are flagged dirty and batch-pushed as new versions the moment you reconnect. On conflicts your local data always wins (never silently dropped).

Local-only is just as easy:

db = connect("mydb", passphrase="secret", auto_sync=False)

CLI

# Create an encrypted database
parad init mydb

# Push to cloud
parad push

# Pull latest
parad pull

# Check status
parad status

# Interactive SQL
parad shell

Commands

Command Description
parad init <name> Create encrypted DB + register with gateway
parad push Push database to Telegram cloud
parad pull [version] Pull latest or specific version
parad sync Push then pull
parad status Local vs remote version
parad versions List all remote versions
parad rollback <ver> Rollback to previous version
parad exec <sql> Run raw SQL
parad insert <table> <json> Insert a row
parad select <table> [where] Query rows
parad update <table> <set> <where> Update rows
parad delete <table> <where> Delete rows
parad shell Interactive SQL REPL
parad config show/set Manage config

Configuration

Config lives at ~/.paradox/config.json:

{
  "database_path": "~/.paradox/data.db",
  "sync": {
    "gateway_url": "https://paradox-db.onrender.com/v1",
    "api_key": "pk_..."
  }
}

Security

  • AES-256-CBC encryption at rest
  • PBKDF2-HMAC-SHA512 key derivation (256k iterations)
  • Your passphrase never leaves your machine

Download files

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

Source Distribution

parad-2.0.0.tar.gz (42.0 kB view details)

Uploaded Source

Built Distribution

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

parad-2.0.0-py3-none-any.whl (42.4 kB view details)

Uploaded Python 3

File details

Details for the file parad-2.0.0.tar.gz.

File metadata

  • Download URL: parad-2.0.0.tar.gz
  • Upload date:
  • Size: 42.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for parad-2.0.0.tar.gz
Algorithm Hash digest
SHA256 4c9b0e8bd1157d2dd49e1dbb4de308f8f0592fc5afe0a356a4a4d2682164aefb
MD5 f63c6d8c38d3e9e4f979994e5b6ab251
BLAKE2b-256 6d7d04672103d0f2ea2cede09126c561e6504f075ef18bd30cfe2e8a798876f9

See more details on using hashes here.

File details

Details for the file parad-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: parad-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 42.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for parad-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2957bcf1effab506960bfc9f95d340d5f390dfb3119bd0234f1eb4a2df0c23d7
MD5 b274fb3d5eee604d6d67a4c17ede02b1
BLAKE2b-256 b6157a3d245813a37703c7f113069d55b8f2bf505e68a61eebb43795af465e8c

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