Really awesome work :-)<p>I've implemented the Fast Match / Simple Edit script algorithm almost 10 years ago for my Master's thesis[1] for my database project[1][2] in order to import revisions of files with a hopefully minimal edit number of edit operations between the stored revision and a new one (back then it was for XML databases).<p>The diffing was only one aspect for the visual analytics approach to compare the revisions (tree structures) visually [4]. Internally the nodes are addressed through dense, ascending 64bit ints stored in a special trie index. Furthermore, during the import optionally changes are tracked as well as a rolling hash is stored for each node optionally. After the import you can query the changes or execute time travel queries easily.<p>Technically, a tree of tries is mapped to an append-only data file using a persistent data structure (in the functional sense), COW with path copying and a novel sliding snapshot algorithm for the leaf data pages itself.<p>I always have the vision to implement different visualizations to compare the revisions in a web frontend, but I'm currently spending my time on improving the latency of both writes and reads.<p>Thus, if someone would like to help, that would be awesome :-)<p>Kind regards<p>Johannes<p>[1] <a href="https://github.com/JohannesLichtenberger/master-thesis/blob/master/Master/Thesis/thesis.pdf" rel="nofollow">https://github.com/JohannesLichtenberger/master-thesis/blob/...</a><p>[2] <a href="https://github.com/sirixdb/sirix" rel="nofollow">https://github.com/sirixdb/sirix</a><p>[3] <a href="https://github.com/sirixdb/sirix/tree/master/bundles/sirix-core/src/main/java/org/sirix/diff/algorithm/fmse" rel="nofollow">https://github.com/sirixdb/sirix/tree/master/bundles/sirix-c...</a><p>[4] <a href="https://youtube.com/watch?v=l9CXXBkl5vI" rel="nofollow">https://youtube.com/watch?v=l9CXXBkl5vI</a>