高性能浏览器级HTML5解析器
html5ever 是作为 [Servo][] 项目的一部分开发的 HTML 解析器。
它可以根据 WHATWG 规范(即“HTML5”)解析和序列化 HTML。不过,目前实际行为存在一些差异,其中大部分已在 [bug 跟踪器][] 中记录。html5ever 通过了 [html5lib-tests][] 中的所有分词器测试,并且除未实现的功能外,大多数树构建器测试也已通过。目标是全部通过 html5lib 测试,同时提供生产级 Web 浏览器所需的所有钩子,例如 document.write。
请注意,HTML 语法与 XML 非常相似。为了正确解析 XHTML,请使用 XML 解析器(尽管如此,许多现存的 XHTML 文档是以 HTML 兼容形式序列化的)。
html5ever 是用 [Rust][] 编写的,因此它避免了使用 C 所带来的众所周知的安全问题。使用 Rust 构建也使得该库具备您对用 C 编写的 HTML 解析器所期望的高性能。html5ever 基本上就是一个 C HTML 解析器,但无需垃圾回收器或其他繁重的运行时进程。
将 html5ever 添加为依赖项:
cargo add html5ever您还可以查看 [examples/html2html.rs], [examples/print-rcdom.rs] 和 [API 文档][]。
该代码与WHATWG语法规范进行了交叉引用,最终我们将能够实现代码与规范并排展示。 html5ever 基于 Rust 的官方稳定版本构建,尽管某些优化仅在 nightly 版本上受支持。
[API Documentation][API documentation]
暂无开放 Issues,或尚未同步最近议题。