Sparkplug IoT data encoding format

Sparkplug is an encoding scheme that uses protobuf for encoding, and is intended as a very full featured, yet efficient data format. Example implementations are here. The Sparkplug encoding can encode data in a number of different formats and even has the capability to encode matrix data. However, it is efficient in that it does not use space in the packet for features that are not used (a feature of protobuf). Protobuf is also nice in that the field names are not included in every packet – they are represented as ints.

Investigating this in the context of the Simple IoT project.

Wireshark is getting support for decoding Sparkplug:

New Protocol Support

Bluetooth Link Manager Protocol (BT LMP), E2 Application Protocol (E2AP), Event Tracing for Windows (ETW), High-Performance Connectivity Tracer (HiPerConTracer), Kerberos SPAKE, Linux psample protocol, Local Interconnect Network (LIN), Microsoft Task Scheduler Service, O-RAN E2AP, O-RAN fronthaul UC-plane (O-RAN), Opus Interactive Audio Codec (OPUS), PDU Transport Protocol, R09.x (R09), RDP Dynamic Channel Protocol (DRDYNVC), Real-Time Publish-Subscribe Virtual Transport (RTPS-VT), Real-Time Publish-Subscribe Wire Protocol (processed) (RTPS-PROC), Shared Memory Communications (SMC), Signal PDU, SparkplugB, State Synchronization Protocol (SSyncP), Tagged Image File Format (TIFF), TP-Link Smart Home Protocol, and World of Warcraft World (WOWW)

We really have some amazing tools to work with.