Save time. Save effort. Let s11n save your data, man.
Project powered by:

Welcome to s11n.net!

s11n (an abbreviation for serialization) is an Open Source project focused on the generic serialization of objects (i.e., object persistence) in the C++ programming language (and now C, too!). If you're not a C++ programmer then this site will have nothing terribly interesting for you. If you are, however, then come in and find out how to save your data...

The project's flagship library, appropriately named libs11n, can easily serialize all manner of PODs (Plain Old Data types), most STL containers, and user-defined Serializable types. By taking advantage of relatively new, advanced C++ techniques s11n turns this formerly-difficult task into child's play. It supports literally hundreds of millions of combinations of standard containers out of the box. libs11n is 100% data-format agnostic, and currently includes support for many formats, including 3 XML flavours. (As far as i am aware, this exceeds support provided by any other serialization framework, regardless of the implementation language!)

A short history of this project, and an overview of its goals, can be found here. A more "dramatic" description can be found on the s11n's Dream page.

We will now refer the reader to the abundant documentation available via these pages:

Development status

libs11n is a mature product, ready for production use. It has been in development since 2003 and has been very stable since 2004.
My many, many thanks to those of you who have continued to feed back on these libraries! Your feedback has led to massive improvements in usability and functionality.
----- stephan beal

Recent News:

(subscribe to the news via RSS 2.0: here)
(More news and information about ongoing development can be found on blog.s11n.net.)

Wed Nov 16 18:43:00 CEST 2010
s11n-style JSON
Work has started on a C++ JSON library which includes a stripped-down version of libs11n to handle the de/serialization of C++ native types to/from the world of JSON. It's still quite new, but the basics are in place and seem to work quite well. See the nosjob home page for details and source code.

Sat Jun 5 13:59:00 CEST 2010
s11n Gentoo Linux Ebuild Files
Yuchen Xie contributed an ebuild file for libs11n, so it can be built on Gentoo Linux systems using its native packaging tool. Starting with version 1.2.10, ebuild files are available on the downloads page.

Sat Mar 20 13:00:00 CEST 2010
libs11n 1.2.10 released
s11n 1.2.10 was finally released today, after sitting around on my hard drive for many months. This release has no notable API changes or bug fixes, but includes patches from Damien Hocking which allow s11n to be built as a DLL on Windows platforms. Thanks also go to Ryan Fogerty for reminding me that a portability fix for gcc 4.4 needed to be released. Version 1.2.9 was never released, but i used the number in another project which embedded s11n, so that number is being skipped.

Tue Jan 28 15:30:00 CEST 2009
s11n working as a DLL on Windows
Damien Hocking has done the impossible - he got libs11n working as a DLL on Windows! Long-time users of s11n will probably remember that s11n's classloader model does not play well with Windows because of the weird (and largely unrealistic) symbol export rules for DLLs on those platforms. Damien has gotten it working, however, and this is exciting news for the project. Once we get his changes integrated into the main tree we'll make a release.

Sun Nov 16 12:30:00 CEST 2008
c11n is beta
c11n (basically "s11n for C") is now at a point where it's usable. i've moved it over to a new build environment, stuffed it in the s11n SVN tree, and will post a downloadable tarball for it in the next few days. If there are any C coders still out there, i would love to get any feedback on the API. The API looks/works more or less how i want it to look/work, but there is some work to be done on simplifying the creation of new marshallers - that currently requires quite a bit of code (80% of it can be generated by a shell script, however).
It might be interesting to know: regardless of whether or not c11n ever becomes as useful as s11n, the work on c11n has revealed several places for improvements in future s11n work. For example, the stream model may be ported over to s11n 1.4 or 2.x, and the i/o handlers will almost certainly be ported over as well because the c11n implementations don't require an ancient version of flex (most of the s11n implementations do). There's also some work to be done on making a new s11n_node type which is (almost) as lightweight as its C counterpart.

This project developed in conjunction with:

  • toc, the other ./configure
  • WanderingHorse.net acts as a development sandbox for much code related to this project.
These web pages are lovingly hand-crafted using XEmacs and PHP, and the web site monitoring is furnished by Uptime Pal.