Skip to content
Craig Hesling edited this page Feb 8, 2016 · 8 revisions

Development Notes

Things that should be fixed

  • Add separate unsigned and signed type inputs and outputs
  • Universalize the data types and sizes across architectures.
    Ex. Long may be different on x86 than on x86-64.

Features I would like to see

  • Switch to using the standard printf formatting string
    As in %s for string, %d for signed int, %lu for unsigned long.
    Among many obvious advantages, it would allow nice conversions and safety for singed and unsigned values.
    The only issue is that we would need a few extra specifiers for raw data buffers, like the 'B' currently.
  • Add a magic number into serialized data header and checksums of packed data.
    This would allow receivers to detect the presence of serialized data with among other data.
    This should be a feature like the HASTABLE that can be optionally enabled.
    Maybe use an int like 0xfee1a115e. It is supposed to the opposite of 0xfee1dead(from the Linux reboot magic value).
  • Ability to send and recv the serialized data over a socket
  • Add an iterator class for iterating through a stream of serial data packets.
    This may be tied in with the "send and recv serial data over sockets" and the "add magic number" features described above.
    This would be handy when you are buffering all data from a stream and you want to use this library as the primary protocol wrapper.
    The implementation already places the size field close to the front of the data for this purpose.
  • Architecture independent packed data (correct endianness)
  • Add C string type handing for convenience.

Things to remember

  • Struct padding is still enabled

Clone this wiki locally