On 2013-08-17 10:29, glycerine wrote:

Huh? Do you know what thrift does? Summary: Everything that
Orange/std.serialization does and more. To the point: Thrift
provides data versioning, std.serialization does not. In my book:
end of story, game over. Thrift is preffered choice. If you
are going to standardize something, standardize the Thrift
bindings so that the compiler doesn't introduce regressions
that break them, like happened from dmd 2.062 - present.

Orange/std.serialization is capable of serializing more types than Thrift is. Example it will correctly serialize and deserialize slices, pointers and so on.

It's easy to implement versioning yourself, something like:

class Foo
{
    int version_;
    int a;
    int b;

    void toData (Serializer serializer, Serializer.Data key)
    {
        serializer.serialize(a, "a");
        serializer.serialize(version_, "version_");

        if (version_ == 2)
            serializer.serialize(b, "b");
    }

    // Do the corresponding in "fromData".
}

If versioning is crucial it can be added.

--
/Jacob Carlborg

Reply via email to