v0.13.0 -- Milky 支持
Kovi 进行了重大架构升级, 引入了驱动器 (Driver) 抽象层, 实现了协议与核心的解耦. 现在支持全新的 Milky WebSocket 协议 (通过 kovi-milky)
Feat
- 新增驱动器 (Driver)抽象层, 现在支持多协议对接, 可通过
kovi-onebot(OneBot V11)与kovi-milky(Milky协议)两种驱动器连接服务器端 - 新增
kovi-milky, 支持 Milky WebSocket 协议 - 拆分工作空间, 核心
kovi不再支持 OneBot,kovi-onebot、kovi-milky作为独立驱动器 - 与事件系统支持协议无关, 新增
MessageEventTrait以统一消息事件接口, 驱动器可自行注册消息事件解析器 - 消息构建器被抽象为
MessageRegistrar特征 (trait), OneBot和Milky各自有独立实现, 协议差异 (如at与mention)被封装 - 优化
BotInformation采用自引用结构, 新增ID/RefID类型以替代原始的i64, 支持字符串ID, 模糊 ID 差异 build_bot!宏新增了 driver 参数:build_bot! (driver; plugin_a, plugin_b)PluginSet支持批量挂载插件- 驱动器配置与核心配置分离,
Server移至各驱动器自行管理, 支持自定义WS路由路径与all_in_one模式 - OneBot驱动器WS连接采用
OnceCell冷/热路径优化,AbortOnDropRAII管理后台任务生命周期 - 新增 ID 抽象层, 可包容 Int 类型和 String 类型, 并且拥有借用版本 RefID 两者可互转换
Fix
- 修复了与0.12配置文件的兼容性,
kovi.conf.toml中的[config]与[server]部分可共存 - 将
Segment.type_重命名为Segment.kind, 以避免与Rust关键字冲突 - 将
run ()改为异步 (async), 不再在内部维护 Tokio 运行时, 改由客户端#[tokio::main]管理 - 修复milky解析报错
- 修复milky没有正确的处理ping pong
- 修复api错误的杀死BOT
Refactor
- 事件内部格式从
InternalEvent::OneBotEvent (String)重构为InternalEvent::DriverEvent (Value) - 插件事件注册快捷方法 (
on_msg、on_notice等)从PluginBuilder移至驱动器 crate 的EventRegistrar特征 RuntimeBot移除host、port字段, 服务器信息由驱动器管理- CQ码工具函数改为内部使用, 不再导出为公开API
- TLS特性标志移至各个驱动器crate中分别管理