Crate bevy_event_bus

Crate bevy_event_bus 

Source
Expand description

bevy_event_bus: Connect Bevy events to external message brokers

This crate provides an interface similar to Bevy’s EventReader/EventWriter but connected to external message brokers like Kafka.

Re-exports§

pub use backends::EventBusBackend;
pub use backends::event_bus_backend::StreamTrimStrategy;
pub use config::Kafka;
pub use config::Redis;
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 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::KafkaEventMetadata;
pub use config::kafka::KafkaInitialOffset;
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
config
Configuration system for backend-agnostic event bus readers and writers
decoder
Multi-decoder pipeline supporting multiple event types per topic
prelude
Re-export common items for convenience

Structs§

BackendCapabilities
BackendDownEvent
BackendReadyEvent
BackendStatus
ConsumerMetrics
Basic consumer metrics (frame-scoped counters + cumulative stats)
DecodedEventBuffer
Multi-decoded event storage that groups all successfully decoded events by topic This replaces DrainedTopicMetadata for the new multi-decoder pipeline
DrainMetricsEvent
Event emitted after each drain with snapshot metrics (optional for user systems)
DrainedTopicMetadata
Per-topic metadata-aware message buffers filled by drain system each frame
EventBusConsumerConfig
Configuration controlling how many events are drained each frame
EventBusDecodeError
Event fired when message deserialization fails
EventBusError
Event fired when any operation on the event bus fails
EventBusErrorQueue
Queue of errors emitted by writers so they can be flushed outside of the system parameter borrow.
EventBusPlugin
Plugin for integrating with external event brokers
EventBusPlugins
Plugin bundle that configures everything needed for the event bus
EventMetadata
Generic event metadata that works across all backends
EventWrapper
Unified event wrapper that provides direct access to event data along with its metadata. Wrappers are only produced for externally sourced events, so metadata is always present. The wrapper can be used directly as the event thanks to the Deref implementation.
KafkaEventReader
Kafka-specific BusEventReader implementation that can optionally perform manual commits and expose consumer lag metrics.
KafkaEventWriter
Kafka-specific writer that extends the generic writer with partition keys, headers and flush support.
KafkaMetadata
Kafka-specific metadata
ProcessedMessage
Pre-processed message with payload and metadata already converted for efficient reading
RedisEventReader
Redis-specific BusEventReader implementation that exposes manual acknowledgements.
RedisEventWriter
Redis-specific writer that provides stream trimming and configuration-driven options.
SharedRuntime
Bevy resource wrapper for a shared Tokio runtime (Arc for cheap clone into async tasks)
TopicDecodedEvents
Storage for all decoded events from a single topic, organized by event type

Enums§

EventBusErrorType
Types of errors that can occur in the event bus
KafkaReaderError
Errors that can occur when working with the Kafka-specific reader.
KafkaWriterError
Errors emitted by the Kafka-specific writer when backend operations fail.
RedisReaderError
Errors that can occur when working with the Redis-specific reader.
RedisWriterError
Errors emitted by the Redis-specific writer when backend operations fail.

Traits§

BackendMetadata
Trait for backend-specific metadata extensions
BusEvent
Marker trait for events that can be sent/received via the event bus.
BusEventReader
Common capabilities shared by all bus event readers.
BusEventWriter
Common interface shared by all outbound event 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)