Graphtage: A new semantic diffing tool

Click for: original source

Graphtage is a command line utility and underlying library for semantically comparing and merging tree-like structures such as JSON, JSON5, XML, HTML, YAML, and TOML files. By Evan Sultanik.

Graphtage lets you see what’s different between two files quickly and easily, but it isn’t a standard line-oriented comparison tool like diff. Graphtage is semantically aware, which allows it to map differences across unordered structures like JSON dicts and XML element tags. You can even compare files that are in two different formats! And when paired with our PolyFile tool, you can semantically diff arbitrary file formats.

// original.json
{
    "foo": [1, 2, 3, 4],
    "bar": "testing"
}

// modified.json
{
    "foo": [2, 3, 4, 5],
    "zab": "testing",
    "woo": ["foobar"]
}

Graphtage diff tool comparison

Source: https://blog.trailofbits.com/2020/08/28/graphtage/

Tree-like file formats are becoming increasingly common as a means for transmitting and storing data.Graphtage’s diffing algorithms operate on an intermediate representation rather than on the data structures of the original file format. This allows Graphtage to have generic comparison algorithms that can work on any input file type. Very interesting diff tool, please give it a go!

[Read More]

Tags linux software programming web-development open-source