Expand description
bevy_event_bus: Connect Bevy events to external message brokers
This crate provides an interface similar to Bevy’s MessageReader/MessageWriter but connected to external message brokers like Kafka.
Re-exports§
pub use backends::EventBusBackend;pub use backends::event_bus_backend::StreamTrimStrategy;pub use bus_message::BusMessage;pub use config::Kafka;pub use config::BackendMarker;pub use config::EventBusConfig;pub use config::InMemory;pub use config::ProcessingLimits;pub use config::TopologyMode;pub use decoder::DecodedEvent;pub use decoder::DecoderFn;pub use decoder::DecoderRegistry;pub use decoder::TypedDecoder;pub use plugins::event_bus::BackendCapabilities;pub use plugins::event_bus::BackendDownMessage;pub use plugins::event_bus::BackendReadyMessage;pub use plugins::event_bus::BackendStatus;pub use plugins::event_bus::EventBusPlugin;pub use backends::kafka_backend::KafkaEventBusBackend;pub use backends::redis_backend::RedisAckWorkerStats;pub use backends::redis_backend::RedisEventBusBackend;pub use config::kafka::KafkaBackendConfig;pub use config::kafka::KafkaChannelCapacities;pub use config::kafka::KafkaConnectionConfig;pub use config::kafka::KafkaConsumerConfig;pub use config::kafka::KafkaConsumerGroupSpec;pub use config::kafka::KafkaInitialOffset;pub use config::kafka::KafkaMessageMetadata;pub use config::kafka::KafkaProducerConfig;pub use config::kafka::KafkaTopicSpec;pub use config::kafka::KafkaTopologyConfig;pub use config::kafka::UncommittedEvent;pub use config::redis::RedisBackendConfig;pub use config::redis::RedisConnectionConfig;pub use config::redis::RedisConsumerConfig;pub use config::redis::RedisConsumerGroupSpec;pub use config::redis::RedisProducerConfig;pub use config::redis::RedisRuntimeTuning;pub use config::redis::RedisStreamSpec;pub use config::redis::RedisTopologyBuilder;pub use config::redis::RedisTopologyConfig;pub use config::redis::RedisTopologyEventBinding;pub use config::redis::TrimStrategy;
Modules§
- backends
- bus_
message - Serializable payload types exchanged via the event bus.
- config
- Configuration system for backend-agnostic event bus readers and writers
- decoder
- Multi-decoder pipeline supporting multiple event types per topic
- plugins
- prelude
- Re-export common items for convenience
Structs§
- BusError
Context - Context passed to error callbacks registered on writers/readers.
- Consumer
Metrics - Basic consumer metrics (frame-scoped counters + cumulative stats).
- Drain
Metrics Message - Emitted after each drain with snapshot metrics (optional for user systems).
- Drained
Topic Metadata - Per-topic message buffers filled by the drain system and consumed by readers.
- Event
BusConsumer Config - Configuration controlling how many events are drained each frame.
- Event
BusError - Event fired when any operation on the event bus fails.
- Kafka
Message Reader - Kafka-specific
BusMessageReaderimplementation that can optionally perform manual commits and expose consumer lag metrics. - Kafka
Message Writer - Kafka-specific writer that extends the generic message writer with partition keys, headers and flush support.
- Kafka
Metadata - Kafka-specific metadata
- Message
Metadata - Generic message metadata that works across all backends
- Message
Queue - Channel receiver resource for background consumer -> main thread.
- Message
Wrapper - Unified message wrapper that provides direct access to message data along with its metadata.
- Processed
Message - Pre-processed message with payload and metadata already converted for efficient reading.
- Provisioned
Topology - Tracks the provisioned backend topologies so readers can validate configuration without touching backend internals. Only one backend of each type is expected to be active.
- Redis
Message Reader - Redis-specific
BusMessageReaderimplementation that exposes manual acknowledgements. - Redis
Message Writer - Redis-specific writer that provides stream trimming and configuration-driven options.
- Shared
Runtime - Bevy resource wrapper for a shared Tokio runtime (Arc for cheap clone into async tasks)
Enums§
- Event
BusError Type - Categories of errors that can occur in the event bus.
- Kafka
Reader Error - Errors that can occur when working with the Kafka-specific reader.
- Kafka
Writer Error - Errors emitted by the Kafka-specific writer when backend operations fail.
- Redis
Reader Error - Errors that can occur when working with the Redis-specific reader.
- Redis
Writer Error - Errors emitted by the Redis-specific writer when backend operations fail.
Constants§
- DEFAULT_
MAX_ RETAINED_ PER_ TOPIC - Default upper bound on the number of messages retained per topic.
Traits§
- Backend
Metadata - Trait for backend-specific metadata extensions
- BusMessage
Reader - Common capabilities shared by all bus message readers.
- BusMessage
Writer - Common interface shared by all outbound message writers.
Functions§
- block_
on - Block on a future using the shared runtime.
- ensure_
runtime - Ensure a SharedRuntime resource exists in the provided app.
- runtime
- Get a reference to the shared Tokio runtime (Arc inside OnceCell)
Type Aliases§
- BusError
Callback - Callback invoked when an error occurs.