Semantic JSON and XML diff tool with a native GTK4 + Libadwaita desktop UI.
| Language: English | Espanol |
.txt and styled .htmlInstall Flatpak:
# Arch / Manjaro
sudo pacman -S flatpak
# Fedora
sudo dnf install flatpak
# Ubuntu / Debian
sudo apt update && sudo apt install -y flatpak
# openSUSE
sudo zypper install flatpak
Enable Flathub:
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Install and run RustDiff from Flathub:
flatpak install flathub com.digitalgex.RustDiff
flatpak run com.digitalgex.RustDiff
Update or remove:
flatpak update com.digitalgex.RustDiff
flatpak uninstall com.digitalgex.RustDiff
Notes:
com.digitalgex.RustDiff is not available yet, build the Flatpak locally from this repo (see com.digitalgex.RustDiff.yaml).curl -fsSL https://raw.githubusercontent.com/jereok91/rustdiff/main/install.sh | bash
cargo install rustdiff
Rust 1.85+ (edition 2024):
rustup update stable
rustc --version
RustDiff uses native GTK libraries. You need a C toolchain (gcc/clang, make, pkg-config) and GTK development packages.
# Arch / CachyOS / Manjaro
sudo pacman -S base-devel gtk4 libadwaita gtksourceview5
# Fedora
sudo dnf install gcc make pkgconf-pkg-config gtk4-devel libadwaita-devel gtksourceview5-devel
# Ubuntu / Debian (24.04+)
sudo apt install build-essential pkg-config libgtk-4-dev libadwaita-1-dev libgtksourceview-5-dev
# openSUSE
sudo zypper install gcc make pkg-config gtk4-devel libadwaita-devel gtksourceview5-devel
# macOS (experimental)
brew install pkgconf gtk4 libadwaita gtksourceview5
Verify required libs:
pkg-config --exists gtk4 && echo "gtk4: OK" || echo "gtk4: MISSING"
pkg-config --exists libadwaita-1 && echo "libadwaita: OK" || echo "libadwaita: MISSING"
pkg-config --exists gtksourceview-5 && echo "gtksourceview5: OK" || echo "gtksourceview5: MISSING"
# Development
cargo run
# Open with two files
cargo run -- left.json right.json
# Optimized release binary
cargo build --release
Binary output:
target/release/rustdiff
Install local checkout:
cargo install --path .
# Open empty window
rustdiff
# Open two JSON files
rustdiff old_config.json new_config.json
# Open two XML files
rustdiff schema_v1.xml schema_v2.xml
| Shortcut | Action |
|---|---|
Ctrl+O |
Open file in left panel |
Ctrl+Shift+O |
Open file in right panel |
Ctrl+Enter |
Force compare |
Ctrl+S |
Save session to history |
Ctrl+E |
Export result as .txt |
Ctrl+Shift+F |
Pretty-print both panels |
Ctrl+H |
Toggle history panel |
~/.local/share/rustdiff/history.db~/.config/rustdiff/settings.json.txt) and HTML (.html)# Full test suite
cargo test
# Integration tests
cargo test --test parser_tests
cargo test --test diff_engine_tests
com.digitalgex.RustDiff.yamlflathub/com.digitalgex.RustDiff.yaml, flathub/cargo-sources.jsonflathub/README.mddata/screenshots/README.mdUseful external references:
GPL-3.0-or-later