Xee: A Modern XPath and XSLT Engine in Rust

https://news.ycombinator.com/rss Hits: 24
Summary

For the last two years I've been working on a programming language implementation in Rust named Xee. Xee stands for "XML Execution Engine" and it supports modern versions of XPath and XSLT. Those are programming languages, and yes, that's XML stuff. Now hold on. Your brain might shut down when I talk about XML. I totally get that XML may not be your cup of tea. But I'm also going to be talking about a strange different world of technology where everything is specified, and the implementation of a programming language using Rust, so I hope you still decide to read on if those topics could interest you. And if XML does happen to be your cup of tea, I think you should be excited about Xee, as I think it can help secure a better future for XML technologies. Here's the Xee repository. There are two highlights: a command-line tool xee that lets you do XPath queries, and a Rust library xee-xpath to issue XPath queries from Rust. Genesis In 2023 I was asked by Paligo, my amazing and generous client, whether I wanted to implement a modern version of XPath and XSLT in Rust. I felt extremely nervous for a week. Then I told them that this was a big project. I told them that I could do it and I was excited to do it, but it was going to be a lot of work. And although I was right to be very intimidated by the scope, I still underestimated the effort at the time. But Xee has come a long way nonetheless! I'm going to take you along on its journey if you're willing to follow. What is Xee? Xee is a programming language implementation. It implements two core XML programming languages: XPath and, partially at the time of writing, XSLT. XPath is an XML query language, and XSLT is a language that uses XPath as its expression language which lets you transform XML documents into other documents. Xee implements modern versions of these specifications, rather than the versions released in 1999. Xee implements these languages in the Rust programming language. This brings modern XML technology ...

First seen: 2025-03-28 16:25

Last seen: 2025-03-29 16:29