Expand description

mt-dom is a generic virtual dom implementation which doesn’t specify the types of the data that is being processed. It’s up to the library user to specify those types

The goal of this library is to provide virtual dom diffing functionality and return a portable patches which the user can then use to apply those patches in their respective UI elements.

mt-dom is not limited to be used in html base virtual-dom implementation, but can also be use for native UI elements.


pub use diff::diff_with_key;
pub use patch::Patch;


provides diffing algorithm which returns patches

patch module


These are the plain attributes of an element

Represents an element of the virtual node An element has a generic tag, this tag could be a static str tag, such as usage in html dom. Example of which are div, a, input, img, etc.

Describe the path traversal of a Node starting from the root node


represents a node in a virtual dom A node could be an element which can contain one or more children of nodes. A node could also be just a text node which contains a string


Create an attribute

Create an attribute with namespace

create a virtual node with tag, attrs and children

create a virtual node with namespace, tag, attrs and children

create a leaf node