Skip to content

v0.13.0 -- Milky 支持

Choose a tag to compare

@ThriceCola ThriceCola released this 14 Jun 11:01
· 12 commits to main since this release

Kovi 进行了重大架构升级, 引入了驱动器 (Driver) 抽象层, 实现了协议与核心的解耦. 现在支持全新的 Milky WebSocket 协议 (通过 kovi-milky)

Feat

  • 新增驱动器 (Driver)抽象层, 现在支持多协议对接, 可通过 kovi-onebot (OneBot V11)与 kovi-milky (Milky协议)两种驱动器连接服务器端
  • 新增 kovi-milky, 支持 Milky WebSocket 协议
  • 拆分工作空间, 核心 kovi 不再支持 OneBot, kovi-onebotkovi-milky 作为独立驱动器
  • 与事件系统支持协议无关, 新增MessageEventTrait以统一消息事件接口, 驱动器可自行注册消息事件解析器
  • 消息构建器被抽象为MessageRegistrar特征 (trait), OneBot和Milky各自有独立实现, 协议差异 (如atmention)被封装
  • 优化 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冷/热路径优化, AbortOnDrop RAII管理后台任务生命周期
  • 新增 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_msgon_notice 等)从 PluginBuilder 移至驱动器 crate 的 EventRegistrar 特征
  • RuntimeBot移除hostport字段, 服务器信息由驱动器管理
  • CQ码工具函数改为内部使用, 不再导出为公开API
  • TLS特性标志移至各个驱动器crate中分别管理