GPDS is a General Purpose Data Serializer implemented as a very small C++ library. It allows to serialize C++ classes to and from XML/YAML files in a generic format that can be processed by other XML/YAML processing software (or just for the sake of readability).
Consider the following C++ class:
class Color { public: std::string name; int red; int blue; int green; };
Most serializers would produce the following output when serializing to XML:
<valuelist> <value type="string">Black</value> <value type="int">0</value> <value type="int">0</value> <value type="int">0</value> </valuelist>
This is not really practical when we want to process the same XML file with other software. GPDS on the other hand produces the following output:
<color name="Black" format="rgb"> <red depth="32">0</red> <green depth="32">0</green> <blue depth="32">0</blue> </color>
GPDS not only supports XML, but also supports YAML:
- color: "-format": rgb "-name": Black blue: "#text": 0 "-depth": 32 green: "#text": 0 "-depth": 32 red: "#text": 0 "-depth": 32