Header

Pharo default distribution

Since Pharo 2.0, Fuel is integrated in its default distribution.

Moose extension

A model export/import extension has been developed and integrated into Moose Suite 4.4. Moose is an open-source platform for software and data analysis. It uses large data models that can be exported and imported from files.More information and some benchmarks here.

Pier CMS persistency

Yanni Chiu developed a tool to persist Pier CMS kernels, that is, Pier CMS websites. This way a Pier website can be migrated from one image to another one.Code is available in http://ss3.gemstone.com/ss/pierfuel.html

SandstoneDB with Fuel backend

SandstoneDB is a lightweight Prevayler style embedded object database with an ActiveRecord API that doesn't require a command pattern and works for small apps that a single Pharo image can handle. The idea is to make a Pharo image durable and crash proof and suitable for use in small office applications. By default, SandtoneDB uses SmartRefStream. There is also a GOODS backend and now one for Fuel.For more details check:To try Fuel with SandstoneDB you just need to load the extra package 'SandstoneDbFuel' and evaluate:
 SDFileStore serializer: SDFuelSerializer new.

SimplePersistence with Fuel backend

You can use Fuel as the serializer/materializer for the Simple Image Based Persistence scheme described here: http://forum.world.st/ANN-SimplePersistence-2-0-now-with-fuel-td4667114.html

Fuel in BioSmalltalk

Fuel is used to serialize big DNA or proteins and it has a special requirement: to customize the serialization strategy to save precious memory. This means to change the serializer on-the-fly when a particular object is found in a graph of objects, specifically, if a DNA or protein sequence with a particular threshold is found, you certainly would like to zip it. This is the project website: http://code.google.com/p/biosmalltalk/. Also you can read this blog post.

Pharo Kernel generation

PharoKernel is a Pharo distribution that contains only the real kernel packages. The image is only about 2.5 MB and works correctly. For more info check this post and the CI jobs. Pharo uses Fuel to export ALL Pharo packages (all but kernel ones) and then to import them in a PharoKernel, giving us back the original Pharo image but generated from the kernel.

Marea

Marea is a virtual memory manager whose main goal is to offer the programmer a solution to handle application-level memory. Developers can instruct the system to release primary memory by swapping out unused yet referenced objects to secondary memory. The input for Marea are user-defined graphs, that is, graphs that the user wants to swap out to secondary memory. Swapped graphs are swapped in as soon as one of their elements is needed. The graphs to swap can have any shape and contain any type of object. This includes classes, methods and even the execution stack which are all first-class objects in Pharo. To fulfill its requirements, Marea uses Fuel. For more details see this link.

Tanker

Tanker is a tool to export and import packages of code in a binary way using Fuel serializer. Using Fuel enables us to avoid having to compile from sources during the import.

Presenty UI framework

Presenty is an UI framework based on continuations, prototypes and MVP. It uses Fuel to share prototypes collections (UI settings) between applications

Newspeak port

Newspeak is a laguage derived from Smalltalk and Self. Yaron and Eliot Miranda successfully finished a port of Fuel to Newspeak and they are successfully using it to save and restore their data sets. They had to implement one extension to save and restore Newspeak classes, which is complex because these are instantiated classes inside instantiated Newspeak modules, not static Smalltalk classes in the Smalltalk dictionary.

Other applications

Fuel can be used a simple strategy to persist application specific data, that is, it can perfectly be used as the persistence mechanism in small/medium applications. Examples: