I'm having hard time to choose the format on which my server and my end points will communicate with.
I am considering:
- JSON
YAMLToo hard to parse- CSV
- Google Protobufs
- Binary packing/unpacking (with no use of casting/memset/memcpy to enable portability)
- Some form of DSL
- Any other suggestion you might have
My criterias are ordered from the most important to the least:
- Which is the easiest to parse?
- Which is the fastest to parse?
- Which has the smallest in bytes?
- Which has the potential to have the most readable messages?
- Which has the potential to be encrypted more easily?
- Which has the potential to be compressed more easily?
EDIT to clarify:
- Are the data transfers bi-directional? Yes.
- What is the physical transport? Ethernet.
- Is the data formatted as packets or streams? Both but usually packets.
- How much RAM do the end-points have? The smallest amount possible, depeands on the format I choose.
- How big are your data? As big as it needs to be. I won't receive huge datasets though.
- Does the end-point have an RTOS? No.