difftastic is a structural diff tool that understands syntax. It uses tree-sitter to build a parse tree. The parse tree is then converted to a simpler tree which can be diffed.
It supports over 30 programming languages. It guesses the language used based on the file extension, file name, and the contents of the first lines.
This is free and open source software.
Key Features
- Syntactic Diffing – detects the language, parses the code, and then compares the syntax trees.
- Fallback Textual Diffing – if input files are not in a format that difftastic understands, it uses a conventional line-oriented text diff with word highlighting.
- Range of configuration CLI options.
- Treats diff calculations as a route finding problem on a directed acyclic graph.
- Besides supporting over 30 programming languages, it supports structured text formats: CSS, HCL, HTML, JSON, Newick, TOML, and YAML.
Website: github.com/Wilfred/difftastic
Support: Manual
Developer: Wilfred Hughes
License: MIT License

difftastic is written in Rust. Learn Rust with our recommended free books and free tutorials.
Related Software
| Terminal-Based Diff Tools | |
|---|---|
| difftastic | Structural diff tool that compares files based on their syntax |
| diff-so-fancy | Attractive diffs with diff-highlight and more |
| delta | Viewer for git and diff output |
| icdiff | An improved colored diff |
| diffoscope | In-depth comparison of files, archives, and directories |
| colordiff | Wrapper for diff with pretty syntax highlighting |
| diffsitter | Semantic diff tool |
| objdiff | Local diffing tool for decompilation project |
| ydiff | Tool to view colored, incremental diff in a version controlled workspace |
| diffr | Word-by-word diff highlighting utility |
| dyff | diff tool for YAML files |
| Wdiff | Wordwise implementation of diff |
| dwdiff | diff program that operates at the word level |
| oyo | Step-through diff viewer |
| diffyml | Compares YAML documents by their structure |
| diff2html-cli | Generate HTML diffs |
| biodiff | Terminal-based binary diff viewer |
| dirdiff | Compute the differences between two directories |
| csvdiff | Fast diff tool for comparing CSV files |
| VBinDiff | Visual binary diff |
| riff | Wrapper around diff |
| csv-diff | Diffing CSV and JSON files |
| xmldiff | Compare XML documents |
| vbl | Terminal-based hexadecimal viewer |
| Patdiff | File diff using the Patience Diff algorithm |
| dead-ringer | Binary diff utility |
| sesdiff | Generates a shortest edit script |
| semdiff | Semantic diff tool written in Rust |
Read our verdict in the software roundup.
Explore our comprehensive directory of recommended free and open source software. Our carefully curated collection spans every major software category.This directory is part of our ongoing series of informative articles for Linux enthusiasts. It features hundreds of detailed reviews, along with open source alternatives to proprietary solutions from major corporations such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk. You’ll also find interesting projects to try, hardware coverage, free programming books and tutorials, and much more. Discovered a useful open source Linux program that we haven’t covered yet? Let us know by completing this form. |

