I've just released gosax, a new Go library for high-performance SAX (Simple API for XML) parsing. It's designed for efficient, memory-conscious XML processing, drawing inspiration from quick-xml and pkg/json.
https://github.com/orisano/gosax
Key features:
- Read-only SAX parsing
- Highly efficient parsing using techniques inspired by quick-xml and pkg/json
- SWAR (SIMD Within A Register) optimizations for fast text processing
gosax is particularly useful for processing large XML files or streams without loading the entire document into memory. It's well-suited for data feeds, large configuration files, or any scenario where XML parsing speed is crucial.
I'd appreciate any feedback, especially from those working with large-scale XML processing in Go. What are your current pain points with XML parsing? How could gosax potentially help your projects?
Unhelpfully my only pain point with XML parsing is colleagues refusing to use XML in favour of json or, in really grim moments, yaml.
So I'm delighted to see a sensible modern web language implementation of the one true data exchange format. Thank you for sharing it.