What it is - An AMQP 0.9.1 message broker in Go that RabbitMQ clients can talk to - Direct, fanout, topic, and headers exchanges - Persistent and non persistent messages - In memory or BadgerDB based disk storage - SASL auth, transactions, Prometheus metrics
Why you might care - Works with existing Go, Python, and Node AMQP clients with no code changes - Single binary, minimal flags, or a short JSON config - Quickstart shows hello world publishes in each language
How I built it with AI - Scope. Pin to AMQP 0.9.1, RabbitMQ client compatibility, simple config, and metrics - Protocol skeleton. Frame parsing, handshake, channels, basic flow control, and small state machines for exchanges and queues - Storage. Start in memory for speed, add Badger for durability with a clean switch via flag or config - Compatibility tests. Client snippets for Python, Node, and Go to sanity check behavior - Operability. One command to start, systemd unit, Prometheus on a fixed port, simple logs - Benchmarks. Microbenchmarks for publishes and declarations, keep only stable results - Paper cuts. Iterate on auth, transactions, and helpful errors with sane defaults - Roadmap. Short list in the repo tracks done and next
What still needs work - Durability tuning - More torture tests - Richer metrics and dashboards - More examples
Try it - Clone the repo and build - Start in memory for quick tests - Or start with Badger for persistence - Use the client examples to publish right away
Repo https://github.com/maxpert/strangeq
I would love feedback on client compatibility and real workloads.
AIs used: Qwen (for maybe early 3-4 commits) too many timeouts and errors, so I decided to move to Claude