Forq: a simple Message Queue powered by SQLite
The missing middle between embedded libraries and enterprise solutions. Great for small to medium workloads of up to a few hundred messages per second.
View Documentation

Simple & Reliable
No PhD required: a queue that just works without complexity.
- Single binary or Docker: no external dependencies required to run
- Built with Boring stack: Go + SQLite + HTMX
- 1 table schema, 4 endpoints API: easy to understand and use
- Reasonable defaults: just pass the auth secret and go
- Admin UI included: for monitoring and management
- Prometheus metrics: for observability and alerting

Production Ready Features
Designed for real workloads with enterprise-grade reliability in a simple package.
- Decent throughput: 1200+ messages per sec on my old MacBook
- Retry logic with exponential backoff and dead letter queues
- Message TTL with automatic cleanup of expired messages
- Delayed messages for scheduling future work
- At-least-once delivery
- FIFO order

Developer Experience First
Built for developers who value simplicity, reliability, and their own time.
- Language agnostic: works with any HTTP client
- Official SDKs: Go, Java, TypeScript
- Environment-only config: no passwords in the shell history
- Lightweight with a small memory and CPU footprint
- Clear error messages and comprehensive logging
- Easy to understand and debug internals

But Very Opinionated
Not a swiss-army knife. Focused on doing one thing well, with minimal configuration.
- Non-configurable defaults: sensible for most use-cases
- No rate limiting: that’s on you
- No DB backups: it’s just SQLite files, run Linux cronjob and send them to S3 or smth
- One auth secret to rule them all: for both consumers, producers, and the admin UI
- Open-source, but closed-contribution: no PRs, please
Trusted in Production
Real products powered by Forq