As you might have noticed a PR was opened that had a first try at refactoring this library: #2
However I don't want to decide myself, what this library should eventually look like. It is way more useful to collaborate with you on this subject.
Compatibility
Are we going to keep the original functionality of the library?
Do we keep the original library interface?
What's your stance on dynamic/static allocation of memory?
Are we going to support build-systems such as PlatformIO and CMake: #1
Are we going to publish this library officially through PlatformIO registry/Arduino registry
Payload format
The original format left more room for dynamically sending different types over the medium. As the payload type is identified with an unique id that the decoder at the other side of the medium understands.
In recent years the usage of serialization using protobuffers has increased significantly. Opposed to the current design this serialization technique does not send the payload type id but instead assumes that the other side of the medium knows the payload format. Meaning you can not dynamically send a byte, the decoder has to know what type is being sent.
Protobuffers are more efficient for continuous datastreams. We could incoporate this into the design..
What is the difference between protobuffers and creating your own raw data protocol
Using the protobuf project from Google gives tools to create the format to send over the medium. Using this you can automatically generate the structures and header files needed to implement at encoder and decoder side.
Introduction
As you might have noticed a PR was opened that had a first try at refactoring this library: #2
However I don't want to decide myself, what this library should eventually look like. It is way more useful to collaborate with you on this subject.
Compatibility
Are we going to keep the original functionality of the library?
Do we keep the original library interface?
What's your stance on dynamic/static allocation of memory?
Are we going to support build-systems such as PlatformIO and CMake: #1
Are we going to publish this library officially through PlatformIO registry/Arduino registry
Payload format
The original format left more room for dynamically sending different types over the medium. As the payload type is identified with an unique id that the decoder at the other side of the medium understands.
In recent years the usage of serialization using protobuffers has increased significantly. Opposed to the current design this serialization technique does not send the payload type id but instead assumes that the other side of the medium knows the payload format. Meaning you can not dynamically send a byte, the decoder has to know what type is being sent.
Protobuffers are more efficient for continuous datastreams. We could incoporate this into the design..
What is the difference between protobuffers and creating your own raw data protocol
Using the protobuf project from Google gives tools to create the format to send over the medium. Using this you can automatically generate the structures and header files needed to implement at encoder and decoder side.