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