Xee:Rust 中的现代 XPath 和 XSLT 引擎

主要观点:作者用两年时间在 Rust 中实现名为 Xee 的编程语言,它支持现代版本的 XPath 和 XSLT,虽 XML 曾热门后变小众但仍广泛存在,Xee 可替代老旧的libxml2libxslt,介绍了 Xee 的架构、实现过程及相关规范,目前 XPath 3.1 实现较完整,XSLT 仍有很多工作待做并呼吁贡献者。
关键信息:

  • Xee 基于 Rust 实现,有命令行工具xee和 Rust 库xee-xpath
  • 2023 年受 Paligo 委托实现 XPath 和 XSLT,起初低估工作量但已取得进展。
  • XML 曾在 2000 年代初热门,如今虽小众但仍广泛用于数据存储和传输等。
  • XPath 是 XML 查询语言,XSLT 是转换语言,都有各自规范且不断发展。
  • libxml2libxslt是老旧的 C 库,Xee 希望成为更现代的替代。
  • 实现编程语言遵循常见模式,Xee 中 XPath 经词法分析、语法分析等转化为字节码执行,XSLT 基于相同架构。
  • XPath 和 XSLT 规范众多,实现任务艰巨,Xee 目前 XPath 实现较完整,XSLT 待完善并呼吁贡献者。
    重要细节:
  • Xee 仓库
  • 作者曾创建 Python 的 XML 库lxml,Stefan Behnel 参与维护。
  • Java 世界有良好的 XPath 和 XSLT 支持,如 Saxon,还有其他语言的绑定。
  • libxml2libxslt由 Daniel Veillard 创建,最初为 C 代码设计,lxml基于其构建。
  • XPath 3.1 规范庞大,涉及多个相关规范,作者还实现了正则表达式引擎。
  • Xee 的 XPath 3.1 实现有 20130 个测试通过,测试套件运行 13 秒。
  • 呼吁对 Xee 有兴趣的人提供各种帮助,如根据规范实现功能、进行编程语言优化等。
阅读 9
0 条评论