[phobos] Interest in having a serializer in Phobos?

Masahiro Nakagawa repeatedly at gmail.com
Sun Aug 8 09:39:56 PDT 2010


On Sun, 08 Aug 2010 23:44:01 +0900, Jacob <doob at me.com> wrote:

>
> On 8 aug 2010, at 16:16, Lars Tandle Kyllingstad wrote:
>
>> On Sat, 2010-08-07 at 17:19 +0200, Jacob wrote:
>>> Is there any interest in having a serializer in Phobos? I have a  
>>> serializer compatible with D2 which I licensed under the Boost  
>>> license. This is the description from the project page:
>>>
>>> Orange is a serialization library for D1 and D2, supporting both Tango  
>>> and Phobos. It can serialize most of the available types in D,  
>>> including third party types and can serialize through base class  
>>> references. It supports fully automatic serialization of all supported  
>>> types and also supports several ways to customize the serialization.  
>>> Orange has a separate front end (the serializer) and back end (the  
>>> archive) making it possible for the user to create new archive types  
>>> that can be used with the existing serializer.
>>>
>>> It's not very well tested but if there's some interest I'm hoping on  
>>> getting more people to test the library. The project page is:  
>>> http://dsource.org/projects/orange/
>>
>> I agree (with everyone else) that Phobos should have a serialization
>> lib.  And now it seems we're spoilt for choices -- both Masahiro's
>> MsgPack serializer and Jacob's Orange are more or less complete, working
>> solutions being offered to us.
>
> Can MessagePack serialize an object? I'm looking at the website and  
> can't see that is has direct support for that.

No(but can use helper method).

MessagePack is a language-neutral serialization and RPC  
specification(ProtoBuf, Avro too).
Main purposes are fast and small serialization and communication between  
many languages.
These libraries don't handle an object type because
almost systems don't serialize and exchange an object type in product.

I will add RPC part to MessagePack module.
But currently, Phobos doesn't have event module.
So, I am rewriting std.socket and thinking about event module API.

>> I have very little experience with using serialization libs, so I have
>> no idea how to determine which one is the better choice.  How do we
>> decide which one to use?  Perhaps a vote on the NG?
>
> I think one could create a MessagePack archive for my serializer.
>

I think Orange front-end is overengineering for MessagePack serializer.
MessagePack format can't handle object graph.
But, without speed degradation,
limitation version will be alternative of direct-conversion (de)serializer.

Lastly, I think supporting two modules is better.
Because the purpose of two modules is different.


Masahiro


More information about the phobos mailing list