ek-core 0.1.0

Business-agnostic plugin host and actor-over-bus runtime on top of ek-event: single-registry plugins, explicit deps with topological start, per-plugin actor workers, one-shot request/reply, panic quarantine, five-step close.
Documentation
//! ek-core —— 插件宿主 + Actor-over-Bus 运行时(基于已发布的 ek-event 0.1.0)。
//!
//! 核心协议:
//! - **收** = 插件唯一入口 [`Plugin::on_mail`](plugin::Plugin);订阅面由 [`Plugin::routes`] 声明,
//!   宿主 start() 时为每条 route 装配 forwarder(bounded 邮箱 + try_send,零阻塞)。
//! - **发** = 插件唯一出口 [`PluginContext`](context::PluginContext):`put`(广播)、
//!   `ask`(eReq+Oneshot 请求)、`notify`(eTo)、`write_log`(eLog)。
//! - 宿主不执行业务;插件之间不直调;依赖在 add_plugin 时显式声明,
//!   start 按 deps 拓扑序装配,close 按逆序五步回收。
//!
//! 故障面:handler panic 由 worker catch_unwind 隔离,连续 [`PANIC_LIMIT`] 次 → Quarantined
//! (worker 自退,发 `ePlugQDown.<name>` + eLog);邮箱有界,溢出丢弃计数 + 节流 eLog。

pub mod context;
pub mod envelope;
pub mod error;
mod forwarder;
pub mod log_plugin;
pub mod main_engine;
pub mod plugin;
pub mod registry;
pub mod worker;

pub use context::PluginContext;
pub use envelope::{e_req_type, e_to_type, Envelope, OneshotErr, OneshotReceiver, OneshotSender, ReplyErr};
pub use error::{AskError, PluginError};
pub use log_plugin::{LogData, LogPlugin, EVENT_LOG, EVENT_PLUG_DOWN_PREFIX, LOG_LEVEL_ERROR, LOG_LEVEL_WARN};
pub use main_engine::{MailStats, MainEngine, PluginInfo, PluginState};
pub use plugin::{Plugin, MAILBOX_CAP, PANIC_LIMIT};