# hare_mq v1.5.0 - Table of Contents

Elixir messaging library using RabbitMQ, providing easy-to-use modules for message publishing, consuming, and retry handling

## Modules

- [HareMq](HareMq.md): HareMq is an Elixir library for interacting with AMQP systems such as RabbitMQ.
It provides supervised connection management, queue/exchange topology declaration,
message publishing with optional deduplication, message consumption with automatic
retry/dead-letter routing, stream queue support, and dynamic consumer scaling with
an optional auto-scaler.
- [HareMq.AutoScaler](HareMq.AutoScaler.md): A GenServer that automatically scales the number of consumers based on the
number of messages in the RabbitMQ queue.

- [HareMq.AutoScalerConfiguration](HareMq.AutoScalerConfiguration.md): Configuration module for HareMq AutoScaler.
- [HareMq.CodeFlow](HareMq.CodeFlow.md)
- [HareMq.Configuration](HareMq.Configuration.md): Runtime configuration struct and builder for HareMq queue consumers.
- [HareMq.Connection](HareMq.Connection.md): GenServer that manages a single AMQP connection.
- [HareMq.Consumer](HareMq.Consumer.md): Macro that injects a single-process RabbitMQ consumer GenServer.
- [HareMq.Consumer.Behaviour](HareMq.Consumer.Behaviour.md)
- [HareMq.DedupCache](HareMq.DedupCache.md): ETS-backed deduplication cache for RabbitMQ message processing.
- [HareMq.DynamicConsumer](HareMq.DynamicConsumer.md): Macro that injects a horizontally-scalable RabbitMQ consumer pool.
- [HareMq.DynamicConsumer.Behaviour](HareMq.DynamicConsumer.Behaviour.md)
- [HareMq.DynamicSupervisor](HareMq.DynamicSupervisor.md): Per-module dynamic supervisor for `HareMq.DynamicConsumer` worker pools.
- [HareMq.Exchange](HareMq.Exchange.md): Module providing functions for managing RabbitMQ exchanges.
- [HareMq.GlobalNodeManager](HareMq.GlobalNodeManager.md)
- [HareMq.Publisher](HareMq.Publisher.md): Macro that injects a full RabbitMQ publisher GenServer into the calling module.
- [HareMq.Publisher.Behaviour](HareMq.Publisher.Behaviour.md)
- [HareMq.Queue](HareMq.Queue.md): Functions for declaring and binding RabbitMQ queues.
- [HareMq.RetryPublisher](HareMq.RetryPublisher.md): Module providing functions for republishing messages with retry handling.
- [HareMq.Telemetry](HareMq.Telemetry.md): Telemetry events emitted by HareMq.
- [HareMq.Worker.Consumer](HareMq.Worker.Consumer.md): Internal GenServer that manages a single AMQP channel and processes messages.

