Data-MessagePack reviews

RSS | Module Info

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 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/ 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.
2 hidden unhelpful reviews