Skip to main content

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 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 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 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
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
BackendDownMessage
BackendReadyMessage
BackendStatus
BusErrorContext
Context passed to error callbacks.
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
DrainMetricsMessage
Message 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
EventBusPlugin
Plugin for integrating with external message brokers
EventBusPlugins
Plugin bundle that configures everything needed for the event bus
KafkaMessageReader
Kafka-specific BusMessageReader implementation that can optionally perform manual commits and expose consumer lag metrics.
KafkaMessageWriter
Kafka-specific writer that extends the generic message writer with partition keys, headers and flush support.
KafkaMetadata
Kafka-specific metadata
MessageMetadata
Generic message metadata that works across all backends
MessageWrapper
Unified message wrapper that provides direct access to message data along with its metadata. Wrappers are only produced for externally sourced messages, so metadata is always present. The wrapper can be used directly as the message thanks to the Deref implementation.
ProcessedMessage
Pre-processed message with payload and metadata already converted for efficient reading
ProvisionedTopology
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.
RedisMessageReader
Redis-specific BusMessageReader implementation that exposes manual acknowledgements.
RedisMessageWriter
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§

BusErrorKind
Enumerates the error kinds surfaced by writers/readers.
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.
BusMessageReader
Common capabilities shared by all bus message readers.
BusMessageWriter
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§

BusErrorCallback
Callback invoked when an error occurs.