Structural diffs with a streaming API and interactive terminal frontend
Rust
5
13 commits
updated Sep 24, 2026
diffr is experimental and in alpha. API breakages are possible at any time, although we will do our best to warn you of them.
diffr is a Rust-based structural diffing (AST-aware) library. It is also packaged as a CLI with a built-in TUI, and it has a WASM plugin system for extensibility.
diffr accepts the exact same arguments that git diff does.
diffr # index versus working tree
diffr --cached # staged changes
diffr main...HEAD -- src/ # merge-base comparison
CLI and terminal UI (Apple Silicon macOS and x64 Linux):
brew install devdotfast/tap/diffr
The CLI, from crates.io (prebuilt via cargo-binstall, or compiled):
cargo binstall diffr-cli
cargo install diffr-cli --locked
From source: cargo xtask install (requires Rust and Bun).
diffr is a fork of the lovely difftastic(MIT, Wilfred Hughes) and its terminal UI from hunk (MIT, Modem Labs).
We forked difftastic(MIT, Wilfred Hughes) because of the following 3 technical reasons:
We hope in the future that we can find some way to upstream some / all of these features. Obviously everyone works differently and this is quite an opinionated stance on things, so we imagine this may take time.
diffr configdiffr has a powerful, wasm-based plugin API which customizes how it presents changed files. For more details, read the docs.
MIT. See LICENSE for the terms and NOTICE for the third-party work
diffr builds on, starting with the lovely
difftastic.
Rust
74.6%
TypeScript
19.2%
JavaScript
2.3%
HTML
2.0%
Tree-sitter Query
1.3%
Structural diffs with a streaming API and interactive terminal frontend
Rust
5
13 commits
updated Sep 24, 2026
diffr is experimental and in alpha. API breakages are possible at any time, although we will do our best to warn you of them.
diffr is a Rust-based structural diffing (AST-aware) library. It is also packaged as a CLI with a built-in TUI, and it has a WASM plugin system for extensibility.
diffr accepts the exact same arguments that git diff does.
diffr # index versus working tree
diffr --cached # staged changes
diffr main...HEAD -- src/ # merge-base comparison
CLI and terminal UI (Apple Silicon macOS and x64 Linux):
brew install devdotfast/tap/diffr
The CLI, from crates.io (prebuilt via cargo-binstall, or compiled):
cargo binstall diffr-cli
cargo install diffr-cli --locked
From source: cargo xtask install (requires Rust and Bun).
diffr is a fork of the lovely difftastic(MIT, Wilfred Hughes) and its terminal UI from hunk (MIT, Modem Labs).
We forked difftastic(MIT, Wilfred Hughes) because of the following 3 technical reasons:
We hope in the future that we can find some way to upstream some / all of these features. Obviously everyone works differently and this is quite an opinionated stance on things, so we imagine this may take time.
diffr configdiffr has a powerful, wasm-based plugin API which customizes how it presents changed files. For more details, read the docs.
MIT. See LICENSE for the terms and NOTICE for the third-party work
diffr builds on, starting with the lovely
difftastic.
Rust
74.6%
TypeScript
19.2%
JavaScript
2.3%
HTML
2.0%
Tree-sitter Query
1.3%