{"data":{"slug":"difftastic","name":"Difftastic","tagline":"MIT structural/AST diff that understands syntax","category":"rust","categoryName":"Rust","url":"https://difftastic.wilfred.me.uk/","github":"https://github.com/Wilfred/difftastic","pricing":"open-source","hook":"Difftastic is the syntax-aware diff when line-oriented git diffs scream about wrapping and formatter noise.","whatsGood":"MIT. Wilfred/difftastic (`difft`). tree-sitter structural compare: ignore formatting-only churn, match delimiters, real line numbers. Git-configurable as an external diff. Homepage difftastic.wilfred.me.uk; source github.com/Wilfred/difftastic.","theCatch":"Vs delta (syntax-highlight *pager* for git diffs): difftastic is a *structural AST diff*, not a pretty pager over unified diff. Unsupported or huge files fall back to line-oriented. Language coverage is wide but not infinite — unknown formats lose the AST trick.","verdict":"MIT structural diff. Free forever; use when the AST changed, not just the whitespace.","addedAt":"2026-09-13","featured":false,"domain":"Rust","subSpecialty":"Terminal","subcategory":"Terminal","tags":["self-host","permissive","git","active"],"capabilities":["diff","ast","git"],"surfaces":["Self-host"],"ecosystem":["Rust","Multi-platform"],"licenseModel":"OSS/MIT","githubStars":26030,"starsPerWeek":64,"access":"free","archived":false,"repo":{"createdAt":"2018-12-18","pushedAt":"2026-10-16","license":"MIT","archived":false,"checkedAt":"2026-10-19"}},"related":[{"slug":"rust-lang","name":"Rust","tagline":"Systems programming without the footguns"},{"slug":"tokio","name":"Tokio","tagline":"Async runtime for Rust"},{"slug":"axum","name":"Axum","tagline":"Web framework from the Tokio team"},{"slug":"actix-web","name":"Actix Web","tagline":"Fast Rust web framework"},{"slug":"serde","name":"Serde","tagline":"Serialization framework for Rust"}],"links":{"self":"/api/gems/difftastic","html":"/gems/difftastic","markdown":"/gems/difftastic.md","category":"/api/gems?category=rust","categoryPage":"/stacks/rust"}}