Skip to content
deng_ran edited this page Aug 12, 2021 · 11 revisions

English | 中文

The FastProto project was initiated in 2019 to solve the data exchange problem in the Internet of Things. In IoT scenario, the data exchange between devices and servers usually use a customized binary format, rather than the more general JSON, XML, and ProtoBuf.

The data exchange process can be simply summarized as the device packet the data according to a specific protocol. The server receives the binary data, decodes the data and generates a data object. Although this process is not challenging for most engineers, but admits that it is boring and error-prone, consumes a lot of time to debug, then a tool similar to fastjson can be developed to help users realize binary data Conversion between and Java data objects.

Different from JSON semi-structured data, binary data is unstructured and requires the user to specify the data model (protocol). The realization of the data model (protocol) is the core of the entire project. After many attempts, the Java annotation was finally chosen. The annotation method can minimize code aggression, simplify API, which is more intelligent to use.

In addition to serialization and deserialization, data intelligence, data compression, data network and protocol versions are also common problems in the exchange of material data, FastProto uses the same annotations to solve these problems.

  • Decoding Flow

decode-flow

  • Encoding Flow

encode-flow

Documents

Clone this wiki locally