About XTL

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 storage.

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 release notes. 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.

SourceForge Logo