Originally created as an avatar for my younger brother David, this picture was called "Keep on Smiling". When I wrote Daabli, I selected this picture as the project logo, because I thought it's spirit was fitting to the goal of the project.

Daabli

 

Project page    : http://sourceforge.net/projects/daabli/

License            : MIT License

 

Daabli is a simple cross-platform serialization framework for C++. It is designed to be as easy to use as possible and works with a 'C' style human editable format. If your application needs to load objects and data from human readable text files, then Daabli could be useful to you.

 

The currently supported features are:

a. Loads objects from a "C" style format which is easy to read and edit using any plain text editor

b. Extremely simple to integrate and use

c. Portable code; implemented in standard C++

d. Does not require loadable types to derive from a specific base class

e. Does not add any overhead (in terms of space/time) to the types it can load

f. Non-intrusive loading support for types which cannot be modified (e.g., library types)

g. Built-in support for the following STL containers: string, vector, list, deque, pair, map, multimap, set, multiset

h. Supports loading enumerations

i. Supports loading pointers

j. Supports data-structures which form graphs

k. Supports forward pointers to objects

l. Supports (polymorphic and non-polymorphic) pointers to objects of derived types

m. Handles multiple inheritance (although it cannot handle virtual base classes as yet)

n. Does not require RTTI to be enabled

o. Does not require exceptions to be enabled

 

If the above mentioned features are enough to load your objects, then you could try using Daabli. A guide to deserializing objects using Daabli can be found here:

http://www.gamedev.net/reference/programming/features/cppObjLoad/

 

I hope that Daabli (or at least parts/concepts of it) will be useful to you. There is much potential for improvement; if you make changes to the code, improve it, or have some better ideas, I would love to know. I can be reached by email at francisxavierjp [at] gmail [dot] com.

 

Have a nice day,
Francis Xavier