Absurd-SQLite is a SQLite based durable execution engine designed for personal / homelab / edge computing environments.
This project is based on the PostgreSQL implementation from absurd.
A task is subdivided into steps that act as checkpoints. Tasks can suspend (for sleep or events) and resume without data loss. State data is stored in the SQLite tables below:
- Queues:
absurd_queuesscopes all durable execution byqueue_name. - Tasks:
absurd_tasksstores task definitions, parameters, headers, retry/cancel info, idempotency keys, and task state. - Runs:
absurd_runsrepresents per-attempt execution for a task with claim/lease timing, availability, and results/failures. - Checkpoints:
absurd_checkpointstracks named task checkpoints with optional state and run ownership. - Events:
absurd_eventsstores emitted events with JSON payloads scoped by queue and event name. - Waits:
absurd_waitsrecords task steps waiting on events or timeouts.
To interact with the system, a SQLite extension is provided and exposed various SQL functions.
absurd-sqlite-extension: Core Rust crate providing the SQLite extension, engine logic, and schema migrations.standalone: Tauri + SvelteKit desktop app.sdks: Client SDKs for different languages.samples: Example applications demonstrating usage.
General rule: please make sure to lint, format, and test code after making changes. No need to ask for human confirmation before running linters / formatters / tests.
Please follow the sub-project README.md / AGENTS.md for detailed instructions.