#dom #arena #html5ever #generational-arena

generational-arena-dom

基于 generational-arenas 的 html5ever DOM 实现

1 个不稳定版本

0.1.0 2023年7月9日

#12#html5ever

MIT 许可证

13KB
250

Generational Arena DOM

这是使用 generational_indextree(一个基于 indextree 的使用 generational arenas 的实现)实现的 html5ever 中的 DOM。

使用 indextree 作为 DOM 可以使变更更加简单,因为 indextree 的文档中指出

这个竞技场树结构只使用一个 Vec 和数值标识符(向量的索引),而不是像引用计数指针。这意味着没有 RefCell,可变性的处理方式更符合 Rust 的习惯,通过唯一的 (&mut) 访问竞技场来处理。

然而,indextree 存在 ABA 问题,我们可以通过使用 generational-arenas 而不是基于 Vec 的竞技场来解决。

依赖项

~1–6MB
~25K SLoC