#rabbitmq #nats #kafka

armature-messaging

Message broker integrations for the Armature framework - RabbitMQ, Kafka, NATS, and AWS SQS/SNS

1 unstable release

Uses new Rust 2024

0.1.0 Dec 26, 2025

#1465 in Asynchronous


Used in armature-framework

Apache-2.0

125KB
3K SLoC

armature-messaging

Message broker integrations for the Armature framework.

Features

  • RabbitMQ - AMQP messaging
  • Kafka - Event streaming
  • NATS - Cloud-native messaging
  • AWS SQS/SNS - AWS messaging services
  • Unified API - Consistent interface across brokers

Installation

[dependencies]
armature-messaging = "0.1"

Quick Start

RabbitMQ

use armature_messaging::rabbitmq::RabbitMQ;

let mq = RabbitMQ::connect("amqp://localhost:5672").await?;

// Publish
mq.publish("queue", message).await?;

// Subscribe
mq.subscribe("queue", |msg| async move {
    println!("Received: {:?}", msg);
    Ok(())
}).await?;

Kafka

use armature_messaging::kafka::Kafka;

let kafka = Kafka::connect("localhost:9092").await?;

// Produce
kafka.produce("topic", key, value).await?;

// Consume
kafka.consume("topic", "group", |msg| async move {
    println!("Received: {:?}", msg);
    Ok(())
}).await?;

NATS

use armature_messaging::nats::Nats;

let nats = Nats::connect("localhost:4222").await?;

// Publish
nats.publish("subject", message).await?;

// Subscribe
nats.subscribe("subject", |msg| async move {
    println!("Received: {:?}", msg);
    Ok(())
}).await?;

License

MIT OR Apache-2.0

Dependencies

~9–31MB
~340K SLoC