XTL is a library of template classes and functions for reading/writing
structured data to/from an external (platform independent) representation.
This process is also usually known as marshalling, serialization or pickling,
and is useful both for heterogeneous network programming and portable persistent
Currently, XTL supports XDR (Internet standard), GIOP CDR (CORBA
standard) and readable ascii text (write-only) as data formats. Memory
buffers and C++ iostreams are usable as data sources/targets.
Besides the usual C data types (basic, structs, pointers, unions), the
XTL also supports C++ constructs, such as pointers to base classes and
template types, namely, STL containers.
XTL does not include any kind of IDL, and as such, the programmer
is required to write a "filter" for each data type. The API is somewhat
modeled on the original XDR library by Sun, in that the same filter is
used for both reading and writing.
However, heavy usage of templates makes the API simpler and type safe.
Function inlining and careful avoidance of pointers or virtual functions,
also make generated code faster.
The XTL is licensed under the GNU LGPL. Current version is 1.4.2. Download
it from SourceForge.net files section, along with
Earlier versions, and contributor names, are listed in the ancient changelog.
You might want to look at several patches
which are being considered.
Get the Users Guide and take a look at the examples in the source distribution.
There is also an archived mailing list, and an additional archive of ancient posts.
Author and Maintainers
XTL was originally developed by me. It is
currently co-maintained by Phil Grim and Keith Snively. Many other developers
have helped in the past. See the ancient changelog for details.