Skip to main content

Crate rskit_messaging

Crate rskit_messaging 

Source
Expand description

§rskit-messaging

Message broker abstractions with an in-memory implementation for testing. Broker SDKs live in opt-in adapter crates such as rskit-messaging-kafka.

§Quick start

use rskit_messaging::memory::InMemoryBroker;
use rskit_messaging::{Message, MessageProducer, MessageConsumer};

let broker = InMemoryBroker::<String>::new(64);
let producer = broker.producer();
let consumer = broker.consumer();

consumer.subscribe(&["events"]).await?;
producer.send(Message::new("events", "hello".into())).await?;

let msg = consumer.recv().await?;
assert_eq!(msg.payload, "hello");

Re-exports§

pub use batch::BatchConfig;
pub use batch::BatchProducer;
pub use config::BrokerConfig;
pub use config::BrokerConfigExt;
pub use config::CommitStrategy;
pub use config::DeliveryGuarantee;
pub use config::DlqPolicy;
pub use errors::ErrorClassifier;
pub use errors::NoopErrorClassifier;
pub use event::Event;
pub use event_publisher::EventPublisher;
pub use handler::FnHandler;
pub use handler::HandlerMiddleware;
pub use handler::MessageHandler;
pub use handler::chain_handlers;
pub use handler::middleware_fn;
pub use managed_consumer::ManagedConsumer;
pub use managed_consumer::ManagedConsumerBuilder;
pub use managed_producer::ManagedProducer;
pub use managed_producer::ManagedProducerBuilder;
pub use memory::InMemoryBroker;
pub use memory::InMemoryConsumer;
pub use memory::InMemoryProducer;
pub use memory::assert_no_messages;
pub use memory::assert_published;
pub use memory::assert_published_n;
pub use memory::wait_for_message;
pub use message::Message;
pub use metrics::MetricsCollector;
pub use metrics::NoopMetrics;
pub use middleware::StackBuilder;
pub use registry::MessagingBackend;
pub use registry::MessagingFactory;
pub use registry::MessagingRegistry;
pub use router::MessageRouter;
pub use runner::ConsumerRunner;
pub use traits::BrokerComponent;
pub use traits::EventConsumer;
pub use traits::EventProducer;
pub use traits::MessageConsumer;
pub use traits::MessageProducer;
pub use translator::JsonStringTranslator;
pub use translator::JsonTranslator;
pub use translator::MessageTranslator;

Modules§

batch
Batch producer that buffers messages and flushes by size or interval.
bridge
Provider adapters connecting messaging to the provider pattern.
config
Broker configuration types and policy enums.
errors
Error classification for retry and circuit-breaker decisions.
event
CloudEvents-inspired event envelope for domain events.
event_publisher
High-level event publishing facade.
handler
Message handler trait and middleware chain for consumed messages.
managed_consumer
Managed consumer that wraps any MessageConsumer with lifecycle management, handler dispatch, and graceful shutdown.
managed_producer
Managed producer that wraps any MessageProducer with lifecycle management and metrics collection.
memory
In-memory message broker, producer, and consumer for testing.
message
Message envelope and metadata types.
metrics
Operational metrics collection for messaging operations.
middleware
Middleware stack for message handlers.
registry
Explicit messaging adapter registry.
router
Topic-based message routing with wildcard pattern support.
runner
Consumer runner that manages a consumption loop as a tokio task.
traits
Core producer, consumer, and broker traits.
translator
Message translation between wire format and domain types.