A tiny, ultra-lightweight message broker for side projects, prototypes, and internal tools.
1.3K
A tiny, ultra-lightweight message broker for side projects, prototypes, and internal tools.
Built from scratch in Go with zero external heavy dependencies.
TinyMQ offers a true "plug & play" alternative to heavy brokers like RabbitMQ or Kafka. No complex clusters, no Erlang, no JVM — just a single Dockerized binary with built-in disk persistence, strict FIFO delivery, wildcard routing, a simple HTTP API, and now native multi-node clustering.
| Feature | Description |
|---|---|
| Zero Dependencies | Pure Go implementation under ~15MB. Extremely low RAM and CPU footprint. |
| Consumer Groups (Pub/Sub) | Multiple microservices can read the same event stream independently via Virtual Topic Binding (?group=name) without competing for payloads. |
| Native WebSockets | Full-duplex TCP connections (/ws) for sub-millisecond, bi-directional publishing and subscribing. |
| Native MQTT (IoT) | Native v3.1.1 gateway on port 1883. Seamlessly routes binary IoT data to HTTP/WS clients and back. |
| Native Clustering (HA) | Built-in zero-dependency P2P clustering with automatic leader election, quorum-based replication, and transparent follower proxying. |
| Smart Disk Persistence & GC | Append-only Write-Ahead Log (.log) architecture with a background Auto-Compactor (Garbage Collector) to prevent infinite disk growth. |
| Strict Durability (FSync) | Configurable bank-grade physical disk flushing after every operation to protect against sudden power loss. |
| Live Streaming (SSE) | Real-time, non-destructive topic monitoring (GET /stream) utilizing native Server-Sent Events. |
| Dead Letter Queues (DLQ) | Automatically isolates "poison pill" messages after 3 failed retries to keep your main pipelines flowing. |
| Time-Based Routing | Schedule delayed messages for the future or set expiration times natively (TTL & Delays). |
| Network Idempotency | Caches Idempotency-Key headers to safely ignore duplicate publish requests caused by network retries. |
| Batching & Prefetch | Pull multiple messages in a single HTTP call (?limit=X) to drastically reduce network overhead. |
| Push Consumers (Webhooks) | Passive integration. Let the broker POST directly to your external endpoints with built-in SSRF protection. |
| Native Observability | Built-in /metrics endpoint formatted natively for Prometheus scraping, requiring zero external agents. |
| Interactive UI & CLI | Built-in web Dashboard to monitor queues visually, and a native terminal CLI (tmq) for management, offline backups, and high-concurrency stress testing (bench). |
| Graceful Shutdown | Safely flushes OS-level buffers to disk on SIGTERM/SIGINT to prevent data loss. |
| Plug & Play Configuration | Auto-loads .env files dynamically. No complex XML/YAML configuration files required. |
This is just the quick reference. For the full API documentation, SDK usage, environment variable list, and issue tracking, please visit our official GitHub repository and documentation website:
Content type
Image
Digest
sha256:63e0cb39b…
Size
3.9 MB
Last updated
3 days ago
docker pull flez71/tinymq:3.1.5