[ANNOUNCEMENT] VTD-XML 1.0 released under GPL

Imported from previous forum

I am pleased to announce that both Java and C version 1.0 of
VTD-XML – an open-source, high-performance and non-extractive
XML processing API – is freely available on sourceforge.net.
For source code, documentation, detailed description of API
and code examples, please visit

http://vtd-xml.sourceforge.net

New in VTD-XML 1.0 is the integrated support of XPath that also
features a easy-to-use interface that further enhances VTD-XML’s
inherent benefits, such as CPU/memory efficiency, random access,
and incremental update. A demo of the XPath capability is available
at

http://vtd-xml.sourceforge.net/demo.html

The core technology of VTD-XML is a binary format specification
called Virtual Token Descriptor (VTD). A VTD record is a 64-bit integer
that encodes the starting offset, length, type and nesting depth of a
token in an XML document. Because VTD records don’t contain actually
token content, they work alongside of the original XML document, which
is maintained intact in memory by the processing model.

VTD’s memory-conserving features can be summarized as follows:

  • Avoid Per-object overhead – In many VM-based object-oriented
    programming languages, per-object allocation incurs a small amount
    of memory overhead. A VTD record is immune to the overhead because
    it is not an object.
  • Bulk-allocation of storage – Fixed in length, VTD records can be
    stored in large memory blocks, which are more efficient to allocate
    and GC. By allocating a large array for 4096 VTD records, one incurs
    the per-array overhead (16 bytes in JDK 1.4) only once across 4096
    records, thus reducing per-record overhead to very little.

Our benchmark indicates that VTD-XML processes XML at the performance
level similar to (and often better than) SAX with NULL content handler.
The memory usage is typically between 1.3x ~ 1.6x of the size of the
document, with “1” being the document itself.

Other features included in this release are:

  • Incremental update – VTD-XML allows one to modify content of XML
    without touching irrelevant parts of the document.
  • Content extraction – VTD-XML also allows one to pull an element
    out of XML in its serialized format. This can be an important
    feature for partial signing/encryption of SOAP payload for
    WS-security.

For further reading, please refer to the following articles about
VTD-XML