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
MessageConsumerwith lifecycle management, handler dispatch, and graceful shutdown. - managed_
producer - Managed producer that wraps any
MessageProducerwith 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.