APD(Advanced Plugin-based Development Platform)是一个基于 Rust 的插件化网络协议分析与数据处理平台。立项背景是工业物联网、车联网等场景中存在大量私有二进制协议通信需求,传统方案每接入一种新协议都需从头开发通信、解析、业务三层代码,开发周期长且难以复用。平台目标是通过插件化架构将协议接入、数据转换、审查校验、转发分发等能力解耦为独立插件,实现功能灵活扩展与裁剪,无需重新编译即可动态加载或卸载插件。
核心功能模块包括:一是核心库(apd_core),提供配置管理、日志系统、消息总线、能力注册表、插件管理器等基础设施,自身不含业务逻辑;二是通信插件族,覆盖 HTTP、TCP、UDP、WebSocket、MQTT 五大协议,每个协议均实现服务端与客户端双角色,支持多实例并发;三是数据处理插件族,包含数据读取、数据生成、数据审查、数据转换、数据转发、二进制协议解析六个插件,覆盖数据全生命周期;四是工作流编排引擎,提供可视化 DAG 设计器,支持线性执行、拓扑排序并行、消息驱动三种执行模式;五是 Web 管理界面,基于 Vue 3 + Element Plus,提供仪表盘、协议配置、实例管理、工作流编排等可视化操作。
业务流程以典型 TCP 数据处理场景为例:用户在 Web 界面创建工作流工程与项目,在 DAG 画布上拖拽配置 TCP 接收节点、二进制解码节点、数据转换节点、审查节点、转发节点并连线,启动工作流后,TCP 插件接收网络数据,通过 thread_local 旁路通道传递原始字节给数据处理插件进行解码转换,审查插件校验数据质量后由转发插件路由到目标系统,全程通过仪表盘查看运行状态和执行日志。