1
2The eXternalization Template Library (XTL)
3------------------------------------------
4
5The XTL is a library of template classes and functions for
6reading/writing structured data to/from an external (platform
7independent) representation. This process is also usually known as
8marshalling, serialization or pickling, and is useful both for
9heterogeneous network programming and portable persistent storage.
10
11Currently, the XTL supports XDR (RFC1014), GIOP CDR (CORBA) and
12readable ascii text (write-only) as data formats. Memory buffers
13are usable as data sources/targets. C file streams, C++
14iostreams and POSIX iovecs are also planned.
15
16Besides the usual C data types (basic, structs, pointers, unions), the
17XTL also supports C++ constructs, such as pointers to base classes and
18template types, namely, STL containers.
19
20The XTL does not include any kind of IDL, and as such, the programmer
21is required to write a "filter" for each data type.  The API is
22somewhat modeled on the original XDR library by Sun, in that the same
23filter is used for both reading and writing.
24
25However, heavy usage of templates makes the API simpler and type safe.
26Function inlining and careful avoidance of pointers or virtual
27functions, also make generated code faster. This is a sample
28benchmark:
29
30	PPRO 200 Mhz + output -> membuffer + size ~= 280 bytes
31
32                       -O16   not opt
33             memcpy   2.8 us   2.2 us
34          *XTL* XDR   9.3 us  47.7 us
35 *XTL* "little" XDR   7.8 us  45.8 us
36         *XTL* GIOP   8.5 us  58.3 us
37            Sun XDR  25.0 us  28.5 us
38
39For more information and to download a distribution, visit
40http://xtl.sourceforge.net/ .
41
42Files under /include and /doc are distributed acording to
43the GNU LGPL. See COPYING.LIB for licensing details.
44
45Everything else is public domain.
46
47Contributors
48------------
49
50- Jos� Orlando Pereira
51  jop@di.uminho.pt, http://gsd.di.uminho.pt/~jop
52  Departamento de Informatica, Universidade do Minho
53  Campus de Gualtar, 4710-057 Braga, Portugal
54
55- Asger Alstrup Nielsen
56  alstrup@sophusmedical.dk
57
58- Allan Rae
59  allan.rae@mailbox.uq.edu.au
60
61- Angus Leeming
62  a.leeming@ic.ac.uk
63  Department of Biological & Medical Systems,
64  Imperial College, London, UK
65
66- Grigory Entin
67  Grigory.Entin@arcadia.spb.ru
68
69- Lutz Latta
70  lutz@latta.de
71
72- Phil Grim
73  phil@insufficient-light.com
74
75- Keith Snively
76  ksnively@d-a-s.com
77