A fast, standard-compliant SAX parser and encoder for XML in Elixir, supporting streaming and simple DOM export.
Saxy is an XML SAX parser and encoder for Elixir that prioritizes speed, usability, and strict compliance with the XML 1.0 specification. It enables efficient processing of XML data, making it suitable for handling large documents and real-time parsing scenarios.
Elixir developers who need to parse or generate XML, especially those working with large files, streaming data, or performance-sensitive applications.
Developers choose Saxy for its high performance, low memory usage, and strict standards compliance, offering a faster and more memory-efficient alternative to other Elixir XML libraries like Erlsom and XML Builder.
Fast SAX parser and encoder for XML in Elixir
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Benchmarked as significantly faster than alternatives like Erlsom, with up to 4x speed improvements for deeply nested documents, due to optimized event-driven processing.
Supports parsing large XML files via File.stream! and incremental parsing with Saxy.Partial, enabling efficient memory usage for network streams or sockets without loading entire documents.
Can parse XML into a 3-element tuple format via Saxy.SimpleForm, providing a lightweight DOM alternative for easier manipulation without the overhead of full DOM libraries.
Offers Saxy.XML utilities for programmatically building XML and Saxy.Builder protocol for structs, with encoding speeds up to 30x faster than XML Builder for nested structures.
Does not support XPath, DTD, or XSD, and skips DOCTYPE declarations, making it unsuitable for validation, complex querying, or documents relying on these standards.
Only supports UTF-8 encoding, so handling XML with other encodings requires external preprocessing, limiting compatibility with legacy or diverse data sources.
Requires writing custom SAX event handlers for parsing, which adds initial development overhead compared to more automatic or map-based parsers, despite the provided guide.