A high-performance Erlang/Elixir XML parsing library built on Expat, optimized for stream parsing from network sources.
Fast XML is an Erlang and Elixir library for parsing and manipulating XML data, built on the Expat XML parser. It solves the problem of slow XML parsing in Erlang by providing a high-performance alternative to the built-in xmerl module, especially optimized for stream parsing from network sources like XMPP.
Erlang and Elixir developers working with XML data, particularly those building network applications, XMPP servers, or systems that require efficient parsing of large or continuous XML streams.
Developers choose Fast XML for its significant performance gains over xmerl, its robust stream parsing capabilities, and its proven reliability in production environments like ejabberd, making it ideal for high-throughput XML processing.
Fast Expat based Erlang XML parsing library
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Parses XML 8-18 times faster than Erlang's built-in xmerl module, as documented in benchmark comparisons in the README.
Designed for large documents or infinite network streams like XMPP, with a decoupled architecture that separates raw XML reception from parsed content handling.
Used at scale in the ejabberd XMPP server, proven in thousands of real-world deployments, ensuring robustness for high-throughput applications.
Uses simple Erlang records (xmlel) for XML elements, making manipulation straightforward and integrating well with Erlang/Elixir pattern matching.
Requires Expat XML parser development headers to build, adding complexity to setup and deployment compared to pure Erlang libraries like xmerl.
Focuses on parsing and basic manipulation; lacks built-in support for advanced XML standards such as XPath, XSLT, or schema validation, as not mentioned in the README.
Stream parsing API involves managing state and callbacks (e.g., fxml_stream:new/1 and parse/2), which can be more intricate than simpler, full-structure parsers for quick prototyping.