Monday, July 11, 2011

New Smalltalk Object Serializers: Fuel and StOMP

There are two new Smalltalk serialization frameworks that get attention these days:
  • Fuel
    "Fuel is an open-source general purpose framework to serialize and deserialize objects based on the pickling algorithm of Parcels, a popular tool for loading packages in VisualWorks. Fuel is implemented in Pharo Smalltalk Environment and we demonstrate that we can build a really fast serializer without specific VM support, with a clean object-oriented design and providing most possible required features for a serializer"
  • StOMP
    "[StOMP is a] multi-dialect object serializer built on MessagePack for Smalltalk. The aim is to provide portable, fast, compact serializer for major Smalltalk dialects. StOMP is optimized for small/medium sized data. It is especially suitable for KVS or RPC."
One could wish that forces were joined to create a single project, but right now it seems like the projects learn from each other: Just read what the StOMP team has to say about Fuel:
Fuel's materialization(deserialization) speed is superb. Fuel uses an optimized format for speeding up deserialization. On the other hand, StOMP materialization speed is high because it uses simple one-pass recursion.
Mentioning the other major "competitor" like this, is really nice of the team!

The conclusion is that Fuel is faster for deserialization, but StOMP is faster for serialization. I will post more about this later.

To me it appears like StOMP has better support for serialization/deserialization "hook" methods, class renaming and shape changing. Hopefully, Fuel can learn from StOMP in this field.

Thanks to both teams for their effort!

No comments: