| Crates.io | puniyu_event_bus |
| lib.rs | puniyu_event_bus |
| version | 0.4.1 |
| created_at | 2025-10-24 16:29:54.78961+00 |
| updated_at | 2025-11-16 07:32:33.458592+00 |
| description | puniyu 的事件总线处理库 |
| homepage | https://github.com/puniyu/puniyu |
| repository | https://github.com/puniyu/puniyu |
| max_upload_size | |
| id | 1898757 |
| size | 81,120 |
puniyu 的事件总线处理库
puniyu_event_bus 是 puniyu 项目中的事件总线核心库,负责事件的分发、处理和管理。它基于 tokio
的异步消息通道实现,提供了高效的事件处理机制,支持消息事件的匹配和处理。
定义了支持的事件类型:
Message: 消息事件Notice: 通知事件Request: 请求事件Unknown: 未知事件事件总线核心实现:
sender: 事件发送通道 (mpsc::UnboundedSender<Event>)receiver: 事件接收通道的可选包装 (Arc<Mutex<Option<EventReceiver>>>)EVENT_BUS: 使用 OnceLock 实现的全局事件总线实例send_event: 全局函数,用于发送事件到事件总线EventBus::send_event: 实例方法,发送事件并处理发送错误EventBus::run: 启动事件处理循环,异步处理接收到的事件puniyu_matcher 的 MessageMatcher 进行事件匹配puniyu_handler 的 MessageHandler 进行事件处理EventBus::stop: 停止事件总线,释放资源init_event_bus: 初始化全局事件总线实例setup_event_bus: 设置全局事件总线实例Arc<Mutex<>> 确保多线程环境下的安全访问OnceLock 提供全局唯一的事件总线实例puniyu_matcher 和 puniyu_handler 紧密集成本项目采用 LGPL 许可证。