simulton / gpds

A general purpose data serializer.

Home Page:https://gpds.simulton.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Packaging status

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

For more information, see https://gpds.simulton.com

About

A general purpose data serializer.

https://gpds.simulton.com

License:MIT License


Languages

Language:C++ 91.7%Language:CMake 7.7%Language:Shell 0.5%Language:Batchfile 0.1%