RSS | Module Info | Add a review of Data-MessagePack

3 out of 4 found this review helpful:

Data-MessagePack (0.23) ***

this is an update of my previous review of version 0.16. The documentation has been improved resulting in a bump of my overall rating.

Yet another serialization module, this time with a binary format.

Speed-wise it is a bit slower than JSON::XS (about 20% for both packing and unpacking) and quite faster than Storable for packing perl structures (500%).

The API is quite simple, just two class methods 'pack' and 'unpack' each taking the data as the single argument. The documentation has improved since version 0.16 and now tell you about some of the limitations of the format. Also a discussion about the advantages has been included and the link to msgpack.org/ has got a more prominent place. These were my main issues with the module before.

Benchmarking is hard. I believe it to be very misleading using the serialization of {a=>1,b=>2} to show the small size compared to JSON and Storable. The sizes for the data structure presumable used for speed testing (benchmark/serialize.pl) is Data::MessagePack: 93 bytes, JSON::XS 120 bytes, and Storable. 132 bytes. I also find it misleading to conclude that JSON is slow when the deserilization numbers actually shows json to be faster.

If you don't have a lot of string content and serializes as often as you deserializes, the the benchmark might say that Data::MessagePack is preferable. BUT YOU HAVE TO MAKE YOU OWN BENCHMARKS!

It doesn't seem to handle any kind of structure that JSON::XS doesn't handle with the default settings. Only upside is that the resulting packed string is a bit shorter than both Storable and JSON. With a personal preference for the almost human-readable JSON format I still don't really see the point of Data::MessagePack.

Yes, it is quite early in the modules life cycle. My main reason for looking at the module was a request for adding it to Benchmark::Serialize and then I could as well share my experiences.

Peter Makholm - 2010-09-17T00:55:20

Was this review helpful to you?  Yes No
0 out of 2 found this review helpful:

Data-MessagePack (0.23) ***

Reviewing a module to allow it to get a "rain check" (LOL) or bring it's rating up is dubious and silly at best. This is not about being nice to your friends but being serious with the whole community.

There is no credit for delivering something, ever; just the illusion. Nobody cares much if the author will make the module better in the future (which unfortunately doesn't happen as much as it should). The rating is for what is delivered not for what you wish for. When the modules get better, most serious reviewers re-rate. and if they don't do that, the module author can contact the reviewer.

The module description states "But unlike JSON, it is very fast" which is not true. Even if I didn't believe what Peter said (he is the author of Benchmark::Serialize) the figures in the modules say:
serialize/de-serialize, JSON:480_000 MP:550_00 nothing that grants that module to be "very fast" while the other is not.

The module doesn't handle perl objects. This is seriously limiting unless you use it to simply communicate with other apps that use MessagePack. This would still be a bit lacking as the other app may well be a Perl app.

نديم الخمير - 2010-09-15T06:38:34

Was this review helpful to you?  Yes No
1 hidden unhelpful review


the camel