wilfred/difftastic

a structural diff that understands syntax 🟥🟩

View on GitHub ↗Jump to charts ↓Open shareable report →

Summary Information

Updated 5 minutes ago
Added to GitGenius on September 2nd, 2026
Created on December 18th, 2018
Open Issues & Pull Requests: 293 (+0)
GitHub issues: Enabled
Number of forks: 515
Total Stargazers: 25,863 (+1)
Total Subscribers: 66 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 6.4 days
Mean response time: 79.5 days
90th percentile: 252.4 days
Tracked items: 194

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 81% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. 49% of tracked open issues have had no activity in three months. Only 4% of issues opened in the past year have been closed. Three people close 91% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 123
New in 7 days: 1
Closed in 7 days: 3
Avg open age: 615 days
Stale 30+ days: 103
Stale 90+ days: 74

Recent activity

Opened in 7 days: 1
Closed in 7 days: 3
Comments in 7 days: 0
Events in 7 days: 2

Top labels

  • triaged (15)
  • feature request (9)
  • awaiting-response (5)
  • help wanted (3)
  • display (2)
  • bug (1)
  • diffing (1)
  • needs repro (1)

Detailed Description

Difftastic is a structural diff tool that compares files based on their syntax rather than line-by-line differences.

Difftastic solves the problem of diffs that obscure actual changes by treating code as syntax trees rather than sequences of lines. It parses files using tree-sitter to understand their structure, then compares the resulting abstract syntax trees. This approach means that reformatting code, moving expressions across lines, or changing indentation shows only the semantic changes that matter, not noise from whitespace or line breaks. When a file uses an unrecognized extension, the tool falls back to line-oriented diff with word highlighting.

Difftastic suits developers who want to review code changes with clarity, particularly in projects where formatting changes are frequent or where understanding the actual semantic diff matters more than seeing line-by-line edits. It integrates with git and other version control systems through configuration. The tool supports over thirty programming languages. It is not intended for generating patches to apply later, nor does it address AST-based merging; those remain separate concerns better handled by other tools.

The project experiences active development with regular releases that address crashes and robustness issues. Performance and memory usage scale poorly on files with large numbers of changes, which the maintainers acknowledge as a known limitation. The side-by-side display mode, while generally effective, can sometimes be confusing in certain scenarios. The tool is young and lacks integration with many external tools, though the maintainers welcome community contributions of plugins for popular editors and platforms.