AsmXml is a very fast XML parser and decoder for x86 platforms (Windows, Linux, BSD and Mac OS X). It achieves high speed by using the following features:
- Written in pure assembler.
- Optimized memory access.
- Parsing, validation and lookup at the same time. Lookup makes attributes and elements accessibles in O(1) time.
To give an idea of the relative speed of AsmXml, the fastest open source XML parsers process between 10 and 30 MBs of XML per seconds while AsmXml processes around 200 MBs per seconds (on an Athlon XP 1800+).
This library is also very small, it will increase the size of your application by only 20K.
This parser is intended for applications that need intensive processing of XML, the aim is to quickly load an XML document into C-like structures. This project will likely appeal you if XML parsing is a bottleneck in your data-flow.
Remember: if you really need speed, do not use XML. But if you can't (existing format, enterprise rules, ...), you may have a look at AsmXml.
This library is not for kids ! you have to know how to use an object file with your programming language. And if you don't understand what O(1) means, you should not consider using this library.
News
2012-11-08 - Version 1.4 released
Fixed a bug with the reading of an attribute with a character reference when the memory chunk is full.
2010-10-06 - Version 1.3 released
Fixed a crash when allocating memory while reading an attribute with a character reference.
2009-10-18 - Version 1.2 released
Fixed a bug where unknown attributes could raise an error in non strict mode.
2008-10-13 - Version 1.1 released
Added support of doctypes and processing instructions. Also added a page to answer frequently asked questions.
2008-01-24 - Version 1.0 released
This is the 1.0 release as it is a stable version and includes all the initially planned features.
The release fixes a parsing bug with mixed content elements starting with a comment or a CDATA section.
License
AsmXml is released under the BSD License.