#diff #edit-script #chawathe #gumtree

cinereus

GumTree-style tree diffing with Chawathe edit script generation

12 releases (breaking)

Uses new Rust 2024

0.42.0 Jan 6, 2026
0.41.0 Dec 31, 2025
0.40.0 Dec 29, 2025

#804 in Algorithms

Download history 82/week @ 2025-12-09 31/week @ 2025-12-16 23/week @ 2025-12-30 39/week @ 2026-01-06 34/week @ 2026-01-13 70/week @ 2026-01-20

144 downloads per month

MIT/Apache

41KB
716 lines

cinereus

Coverage Status crates.io documentation MIT/Apache-2.0 licensed Discord

GumTree-style tree diffing with Chawathe edit script generation.

This crate provides a generic tree diffing algorithm based on the GumTree approach:

  1. Top-down matching: Finds identical subtrees by hash
  2. Bottom-up matching: Matches remaining nodes by structural similarity
  3. Chawathe edit script: Generates minimal INSERT, DELETE, UPDATE, and MOVE operations

Used by facet-diff for structural comparison of Facet types.

LLM contribution policy

Sponsors

Thanks to all individual sponsors:

GitHub Sponsors Patreon

...along with corporate sponsors:

AWS Zed Depot

...without whom this work could not exist.

Special thanks

The facet logo was drawn by Misiasart.

License

Licensed under either of:

at your option.

Dependencies

~120KB