Heya! 🥳 Just released TurboXml https://github.com/xoofx/TurboXml a .NET library that provides a SAX like XML parser that can parse small to large XML documents with zero allocations (apart for an internal buffer that is pooled) and is able to accelerate its parsing with SIMD! 🚀

I can now continue my prototype of rendering some SVG by using this library 😅

#dotnet #csharp

GitHub - xoofx/TurboXml: A .NET library to parse XML at lightspeed with zero allocation.

A .NET library to parse XML at lightspeed with zero allocation. - xoofx/TurboXml

GitHub

@xoofx this is cool! I'm looking to parse XAML without the typical XAML reader. That's definitely a use case with long tag names.

Also, we work with SAML at #uipath using the Sustainsys libraries. I'll try to benchmark how good this is with assertions compared to XmlReader.

@xoofx With a SAML assertion, TurboXML is 3x faster than XmlReader and with no allocations. The assertion turns out to be less complicated than the SVG.
@dmetzgar nice! Thanks for testing! 🚀
@xoofx amazing! And impressive how quickly you got this done! 😅
@nietras Thanks! That's really a subset of the full XML specs (e.g no DTD support), so that was more manageable to develop 😁 but I don't think I have ever used DTD stuffs in the past 20 years, and it doesn't seem to be widely used these days in regular XML, so hopefully that should be fine! 🤞
@xoofx Amazing, I will try to integrate into my Svg.Skia library and see how it performs :)
@soltes Cool, that would be interesting! More broadly, I believe Skia has a long way to go to remove the usage of managed objects all over the place and provide a more barebone low level & non allocating API 🙂