Last updated at 8:16 pm UTC on 17 January 2019
Fuel is a general-purpose object serialization framework developed in Pharo.
It is also available for Squeak.
Fuel is developed under the MIT license.
Fuel: A Fast General Purpose Object Graph Serializer
Fuel works fine for a particular version of the image. It is generally not possible to load a fuel file into a later version of Squeak / Pharo.
Exchange of serialized objects between Pharo and Squeak is not possible. SIXX does not have this limitation however it is much slower.
Fuel works fine in Squeak 5.1. Up to date results see:
There are SqueakMap entries including one for version 5.2
Recent versions see github for current load instructions.
Mariano Martinez Peck Tue, Oct 21, 2014 at 3:55 AM
Reply-To: The general-purpose Squeak developers list
To: The general-purpose Squeak developers list
Cc: Squeak Virtual Machine Development Discussion , Discusses Development of Pharo
Just a quick note I would like to share....
For my PhD, I did investigate ImageSegment very very deeply:
I didn't want to write Fuel just because. I took quite a lot of time to understand how ImageSegment primitives worked. From that effort, I remember a few conclusions:
1) I found only few users of ImageSegment
2) The few users I found, were NOT using the real purpose of ImageSegment, that is, object swapping. It was used instead as an object serializer. For that, they use #writeForExportOn: which ended up using SmartRefStream for the rest of the objects.
3) I noticed I could achieve the same performance or even better with an OO serializer built at the language side, with all the benefits this means. Of course, having Cog helped here....
In the Fuel paper: http://rmod.lille.inria.fr/archives/papers/Dias12a-SPE-Fuel.pdf
you can find some benchmark comparison agains IS. Also in my PhD: Application-Level Virtual Memory for Object-Oriented Systems
Object Swapping Challenges - an Evaluation of ImageSegment
Fuel serialization approach, BOSS (Binary Object Storage System), Parcels and ImageSegments