Zero partial writes: Atomic transactions and rollback guarantees.
A sudden network drop or unhandled exception mid-operation can corrupt your local database forever. wsqlite's transaction context managers guarantee atomic all-or-nothing execution in both sync and async modes.
Here is how you use Atomic Transactions & Context Managers in production with wsqlite:
from wsqlite.core.connection import get_transaction
# Atomic multi-table transfer
with get_transaction("bank.db") as tx:
# 1. Deduct from account A
tx.execute("UPDATE accounts SET balance = balance - 100 WHERE id = 1")
# 2. Add to account B
tx.execute("UPDATE accounts SET balance = balance + 100 WHERE id = 2")
# If any error occurs here, BOTH statements roll back automatically!
# Auto-committed cleanly on exit of the 'with' block
Why developers love wsqlite:
- Define database tables using standard Pydantic v2 models.
- Auto-syncs columns on startup without writing manual migrations.
- Thread-safe connection pooling with WAL mode enabled by default (5,000+ inserts/sec).
- Full sync and async/await support.
Check out the repo on GitHub!
Top comments (0)