Honker is a SQLite extension and language bindings that add Postgres-style NOTIFY/LISTEN semantics to SQLite, with built-in durable pub/sub, task queues, and event streams without requiring client polling, a daemon, or a separate broker.
SQLite projects eventually need pub/sub and task queues, but the conventional solution of adding Redis and Celery introduces a second datastore with separate backup requirements, a dual-write problem between business tables and queues, and an additional broker to operate. Honker solves this by keeping the queue in the same SQLite file as your primary data. The tool replaces queue-table polling with single-digit-microsecond PRAGMA data_version reads. A watcher checks every millisecond by default, delivering push-like semantics with single-digit-millisecond cross-process delivery. The approach allows INSERT INTO orders and queue.enqueue() to commit in the same transaction, so rollback drops both atomically. Honker provides durable at-least-once queues with retries, delayed jobs, priority, visibility timeouts, and dead-letter rows; durable streams with per-consumer offsets; time-trigger scheduling with cron and duration expressions; and named locks and rate limits.
Honker suits projects where SQLite is the primary datastore and you want to avoid running a separate queue broker. It works across any language that can load SQLite extensions, with bindings for Python, Node.js, Rust, Go, Ruby, Bun, Elixir, C++, .NET, Java, and Kotlin. The tool deliberately excludes workflow DAGs, task chains, multi-writer replication, and distributed locking across machines. The README does not compare it to other queue systems.
The project is in alpha stage, described as better than experimental but not yet beta-quality. Development appears focused on core functionality and language binding support rather than advanced orchestration features.