lavinmq
Lightweight, high-performance AMQP message broker
TLDR
SYNOPSIS
lavinmq [options]lavinmqctl [options] command [arguments]
DESCRIPTION
LavinMQ is an open-source message broker that implements the AMQP 0-9-1 protocol and is wire-compatible with existing RabbitMQ client libraries. It also speaks MQTT and a native streams protocol. Written in Crystal, it is designed to handle very high throughput on a single node while keeping memory usage low by relying on the operating system page cache and memory-mapped files.The broker ships as two executables. lavinmq is the long-running server process that accepts client connections, routes messages between exchanges and queues, and exposes a built-in HTTP management UI. lavinmqctl is the administrative command-line tool used to inspect and manage virtual hosts, users, queues, exchanges, bindings, policies, and broker definitions while the server is running.LavinMQ supports clustering for high availability, replicated queues, federation, shovels, and a streams feature for log-style consumption. Configuration can be provided through an INI file or overridden on the command line, and the broker can be installed from native packages, built from source, or run as the official cloudamqp/lavinmq Docker image.
PARAMETERS
-c file, --config=file
Load broker settings from the specified INI configuration file.-D dir, --data-dir=dir
Directory for persistent data (queues, messages, definitions).-b address, --bind=address
IP or hostname to listen on (default 127.0.0.1).--amqp-port=port
AMQP listener port (default 5672).--amqps-port=port
AMQPS (TLS) listener port (default 5671).--http-port=port
HTTP management UI port (default 15672).--https-port=port
HTTPS management UI port (default 15671).--guest-only-loopback=bool
Restrict the default guest user to loopback connections only.--log-level=level
Logging verbosity (debug, info, warn, error, fatal).-h, --help
Show usage information and exit.-v, --version
Print the LavinMQ version and exit.
CONFIGURATION
LavinMQ reads its settings from an INI file (typically /etc/lavinmq/lavinmq.ini) divided into sections such as [main], [mgmt], [amqp], and [mqtt]. A minimal example:
data_dir = /var/lib/lavinmq
guest_only_loopback = true
log_level = info
[mgmt]
bind = 0.0.0.0
port = 15672
tls_port = 15671
[amqp]
bind = 0.0.0.0
port = 5672
tls_port = 5671
CAVEATS
The default guest/guest account is intended for local testing only and should be replaced before exposing the broker to the network. Although LavinMQ is largely compatible with RabbitMQ clients, some advanced RabbitMQ-specific features and plugins are not implemented. Persistent data is stored on disk per node, so an unclean shutdown of a non-clustered broker can require recovery on the next startup.
HISTORY
LavinMQ was created by CloudAMQP (84codes) and first released as open source in 2022. It originated from the company's experience operating large RabbitMQ clusters and aimed to provide a lighter, faster broker with the same wire protocol. Written in Crystal and licensed under the Apache 2.0 license, the project has since added clustering, MQTT support, and a streams protocol.
SEE ALSO
rabbitmq-server(1), rabbitmqctl(1), mosquitto(8)
