10 个版本
0.6.1 | 2020 年 2 月 3 日 |
---|---|
0.6.0 | 2020 年 2 月 3 日 |
0.5.7 | 2020 年 2 月 2 日 |
#20 在 #virtual-dom
32KB
1K SLoC
brunhild
实验性压缩 Rust 虚拟 DOM 库
Brunhild 旨在提供一种极简且快速的虚拟 DOM 实现,可用于直接使用或构建更高层次的(例如,基于视图的)库和框架。
Brunhild 的核心原则是通过内部将字符串值转换为整数来减少分配和间接引用,这些整数引用静态查找表中的常见 HTML 字符串或动态填充的全局表中的值。这使得大多数值比较和元素节点树构建可以以更低的成本完成。
Brunhild 在 DOM 方面大多数情况下是无引用的。许多虚拟 DOM 库在节点构造时创建一对一的 Node <-> DOM Element 映射。Brunhild 仅在需要 DOM Element 变更时才执行此操作。这使得可以以较低的成本将大型子树更改作为 HTML 字符串修补,从而减少 FFI 过载。这是通过设置 DOM Element ID 并将它们作为整数高效存储在节点上来实现的。因此,Brunhild 不支持库用户设置 ID 属性。请使用类代替此类用途。
依赖项
~6.5–9MB
~171K SLoC