Skip to content

Red-green tree

Status: open/active · Aliases: rowan, green tree

The two-layer CST implementation pattern from Roslyn, carried into Rust by rowan (rust-analyzer, taplo). The green tree is immutable and position-free — nodes know kind, text, and children; identical subtrees are shared — so an edit rebuilds only the spine to the root and everything else is the same memory. The red tree is a lazy view adding parent pointers and absolute offsets for navigation. Serialization concatenates leaves, so untouched regions come out byte-identical by construction.


← Back to the Glossary