Skip to content

API Reference

Use DictSQLite for normal code, AsyncDictSQLite for asyncio, and table() / TableProxy for namespaces.

DictSQLite

python
from dictsqlite import DictSQLite

db = DictSQLite(
    "data.db",
    storage_mode="pickle",
    persist_mode="lazy",
    table_mode="prefix",
    safe_pickle=True,
)
OperationDescription
db[key] = value / db.set(key, value)Store a value.
db[key] / db.get(key, default=None)Read a value.
del db[key] / db.delete(key)Delete a key.
db.batch_set(dict)Write many keys at once.
db.batch_get(keys)Read many keys at once.
db.clear()Remove all entries.
db.flush()Flush lazy writes to storage.
db.close()Flush and close resources.

AsyncDictSQLite

python
from dictsqlite import AsyncDictSQLite

db = AsyncDictSQLite("data.db")
await db.set("key", "value")
value = await db.get("key")
await db.close()

The async API is designed for asyncio workloads. Batch reads use bulk storage reads to reduce SQLite round trips on cache misses.

TableProxy

python
users = db.table("users")
users["alice"] = {"role": "admin"}

Tables provide namespaced access. prefix mode stores prefixed keys, while separate mode uses separate SQLite tables.

Key options

OptionValues
storage_modepickle, jsonb, json, bytes
persist_modememory, lazy, writethrough
table_modeprefix, separate
safe_pickleTrue / False
encryption_passwordstr / None
compressionEnabled through configuration