Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bakape/brunhild
experimental compressive Rust virtual DOM library
https://github.com/bakape/brunhild
dom rust virtual-dom wasm webassembly
Last synced: 3 months ago
JSON representation
experimental compressive Rust virtual DOM library
- Host: GitHub
- URL: https://github.com/bakape/brunhild
- Owner: bakape
- License: mit
- Created: 2017-06-01T15:39:08.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2020-02-03T00:32:13.000Z (about 5 years ago)
- Last Synced: 2024-10-06T23:34:47.473Z (4 months ago)
- Topics: dom, rust, virtual-dom, wasm, webassembly
- Language: Rust
- Homepage:
- Size: 158 KB
- Stars: 13
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# brunhild
experimental compressive Rust virtual DOM libraryBrunhild aims to provide a minimalistic fast virtual DOM implementation for use
as is or for building higher level (for example, view-based) libraries and
frameworks.Brunhild's core principle is reduction of allocations and indirection by
internally converting string values to integers, that reference a value in
either a static lookup table of common HTML strings or dynamically populated
global table. This enables most value comparisons and building of element Node
trees to be done much more cheaply.Brunhild is mostly referenceless in relation to the DOM. Many virtual DOM
libraries create one to one Node <-> DOM Element mappings on Node construction.
Brunhild only performs this, when a DOM Element mutation is required. This
allows to cheaply patch in large subtree changes as HTML strings, reducing FFI
overhead. This is achieved by setting DOM Element IDs and storing those
efficiently as integers on the Node. As a result brunhild does not support
setting the ID attribute by the library user. Please use classes instead for
such purposes.