DriverBox v2.0.0 已经发布,Go 编写的边缘设备接入框架
此版本更新内容包括:
版本亮点
接口优化,体验升级 - v2.0 全面优化插件接口设计,统一设备影子 API,新增事件驱动架构,大幅提升开发效率和运行性能。
✨ 核心新特性
- 插件接口重构
- 简化插件注册方式:RegisterPlugin → EnablePlugin
- 简化导出注册方式:LoadExport → EnableExport
- 优化 Initialize 方法:参数从 3 个简化为 1 个 (config.DeviceConfig)
- 统一插件开发接口,降低学习门槛
- 设备影子 API 统一
- API 路径迁移:helper.DeviceShadow → driverbox.Shadow()
- 提供实时状态缓存、智能在线检测、变化智能上报
- 内存缓存设计,提升数据访问效率
- 事件驱动架构
- 新增事件总线系统,支持 7 种系统事件:
- DeviceAdded - 设备添加
- DeviceDeleting - 设备删除
- DeviceDiscover - 设备发现
- DeviceOnOff - 设备开关
- ShadowOnline - 在线状态变化
- Exporting - 数据导出
- ServiceStatus - 服务状态变化
- 松耦合设计,易于扩展和可观测
- LinkEdge 场景联动增强
- 新增场景联动完整 API:
- Create(config) - 创建规则
- Update(config) - 更新规则
- Delete(id) - 删除规则
- Get(id) - 获取规则
- GetList(tag) - 获取列表
- Trigger(id) - 手动触发
- Execute(config) - 直接执行
- 支持定时触发、设备点位触发、设备事件触发
- 支持深度联动(最大 10 层)
- 新增 History Export
目录结构调整
driver-box/ → driver-box/ + pkg/
driver-box/export/ → exports/
└── linkedge/ → ├── linkedge/
├── history/ (新增)
└── discover/ (优化)
性能优化
- 优化模型点位内存管理
- 优化设备添加事件触发机制
- 优化缓存数据结构,提升并发性能
- MQTT 连接池异步初始化
Bug 修复
- 修复 Lua 虚拟机关闭时的内存泄漏和并发安全问题
- 修复 MQTT 连接配置中的主题解析问题
- 修复设备模型缓存中的插件名称验证问题
- 修复 Modbus 连接关闭时的数据采集任务处理
- 修复配置加载方法名错误
- 修复点位精度配置错误检查逻辑
- 修复插件删除时文件修改时间未更新问题
文档完善
- 新增事件系统、设备影子、架构设计文档
- 新增插件开发指南和导出开发指南
- 集成 Mermaid 图表支持
- 完善 SDK API 文档和使用示例
- 文档代码净增 5,779 行
代码统计
- 166 个提交,涉及 357 个文件修改
- Go 代码:净减少 1,184 行(代码精简)
- 文档/配置:净增加 5,779 行
- UI 资源:净减少 15,826 行(移除内置 Web UI)
破坏性变更
- 插件注册方式变更
// v1.5.5
driverbox.RegisterPlugin("modbus", &modbus.Plugin{})
// v2.0
driverbox.EnablePlugin("modbus", &modbus.Plugin{})
- 设备影子 API 变更
// v1.5.5
helper.DeviceShadow.GetDevicePoint("device-001", "temperature")
// v2.0
driverbox.Shadow().GetDevicePoint("device-001", "temperature")
环境要求
- Go 1.23+
- Linux / Windows / macOS
- amd64 / arm64 / armv7
- 内存:128MB 以上(应用内存约 30MB)
详情查看:https://gitee.com/iBUILDING-X/driver-box/releases/v2.0.0