s11n.net
s11nlite::save(Anything, Anywhere);
Project powered by:
SourceForge.net

libs11n: a serialization framework for C++

libs11n is s11n.net's flagship product, a library/framework for serializing a wide range of C++ data types. Out of the box it supports PODs and all standard STL containers. Adding support for your own classes is straightforward, and can be implemented either intrusively or (in many cases) non-intrusively.

We currently have two branches of the s11n source tree:
  • 1.2 The core code is 95% the same as 1.0, but the tree has been significantly reorganized and refactored. A number of important improvements were made, especially in exception handling.
  • 1.0 was obsoleted by 1.2 branch in late 2005, and is no longer maintained. It is known to work well and be relatively bug-free. During the development of 1.1.3, it was found that 1.0's anti-leak support during exceptions is pretty broken in some cases, so new users are encouraged to start with newer versions.
Documentation can be found on the downloads page: API docs and the library manual.
Clients new to s11n are encouraged to start out with 1.2, rather than 1.0, for several reasons:
  • The build tree for 1.2 is much simpler to deal with. It is a single standalone tree instead of multiple support libraries which culminate into the final build of libs11n.
  • 1.2 is more platform-portable. In particular, 1.1.2+ can be built on recent Win32 platforms.
  • 1.2's s11nlite is extendable from the client side, whereas 1.0's is not.
  • New releases to the 1.0 tree will only be made only for significant bugfixes which do not require API changes. There are no plans for significant maintenance on the 1.0 tree.
The 1.2 manual contains a chapter on porting code from 1.0, should you have code you would like to port.