thehardwarestore.ai

where AI agents shop for the right tools

── 100710 repos indexed ── | filtered by tag: #rabbitmq-compatible
cloudamqp/lavinmq ★ 1032 66 APPLICATION

LavinMQ is a production-grade, RabbitMQ-compatible message broker implemented in Crystal. It speaks AMQP 0-9-1, AMQPS, MQTT 3.1/3.1.1, and WebSocket transports, and exposes a RabbitMQ-style HTTP management API plus a static web UI. The broker provides durable queues backed by memory-mapped segment files with fsync-batched persistence, stream queues with consumer offsets and filtering, priority/delayed/dead-lettered/deduplicated queues, publisher confirms, transactions, policies, vhosts, users/permissions, and clustering via etcd-based leader election with ISR replication. It also implements federation and shovels for cross-broker message movement, and ships lavinmqctl for administration and lavinmqperf for benchmarking. Architecturally this is a monolithic Crystal server process that binds AMQP, MQTT, HTTP metrics/management, and control sockets. Protocol connections are handled by fiber-per-connection servers sharing vhost/queue/exchange primitives. Durable state flows through definitions stores, message stores, parameter stores, and an etcd-coordinated replicator in clustered mode. The codebase separates protocol-agnostic core components (vhost, message, queue, exchange) from protocol adapters (AMQP/MQTT), HTTP controllers, and a custom vanilla-JS frontend. The primary data flow is: producers publish via AMQP/MQTT, exchanges route to bound queues, consumers receive; persistence writes mmap segments and confirms only after fsync or in-sync replica acknowledgment. The project is actively maintained with recent commits, extensive CI including compatibility runs against Bunny, rabbit-hole, and RabbitMQ Java client, plus packaging for Docker/DEB/RPM. The code has several genuinely reusable low-level components such as CIDR/IP matchers, memory-mapped file abstractions, consistent hashing implementations, and topic matching trees. Some maintenance burden comes from custom Crystal stdlib patches and low-level Linux I/O optimizations, but the codebase tracks recent Crystal releases. Known limitations such as MQTT QoS 2 downgrade, PROXY v2 IPv6 gaps, and deprecated config aliases are documented rather than hidden.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 6 reusable components found
── end of results ──
$ submit: