Skip to content

Home zh

deng_ran edited this page Aug 12, 2021 · 4 revisions

English | 中文

FastProto项目发起于2019年,目的是为了解决物联网中的数据交换问题。 在物联网引用场景中,设备与服务器之间的数据交换通常采用自定义二进制格式,而不是更加通用的JSON、XML和ProtoBuf。

数据交换过程可以被简单概括为设备按照特定的协议将数据封包,服务器接收到数据后,按照协议解析数据,生成数据对象,反之亦然。 虽然上述过程对大多数工程师并不具有挑战性,但是不得不承认其枯燥且容易出错,消耗大量的精力调试,那么能否开发一款类似fastjson的工具,帮助用户实现二进制数据 与Java数据对象之间的转换。

区别于JSON半结构化数据,二进制数据是非结构化的,也就是需要用户指定数据模型(协议)。 数据模型(协议)的实现是整个项目的核心,经过很多尝试,最终选择Java注解的方式。 注解方式能够最大程度地减少代码侵入,并能够精简API,使用起来更加直观。

除了序列化和反序列化,数据加密、数据压缩、数据完整性校验和协议版本校验也是物联网数据交换中常见的问题,FastProto同样采用注解去解决这些问题。

  • 解码流程

decode-flow

  • 编码流程

encode-flow

文档

Clone this wiki locally