| Crates.io | tudiff |
| lib.rs | tudiff |
| version | 0.1.2 |
| created_at | 2025-09-30 08:11:19.648941+00 |
| updated_at | 2025-12-12 06:38:31.378161+00 |
| description | A high-performance terminal directory comparison tool written in Rust - bringing Beyond Compare's intuitive interface to the command line. |
| homepage | https://github.com/withoutsalsu/tudiff |
| repository | https://github.com/withoutsalsu/tudiff |
| max_upload_size | |
| id | 1860756 |
| size | 241,890 |
A high-performance terminal directory comparison tool written in Rust - bringing Beyond Compare's intuitive interface to the command line.
π°π· νκΈ λ¬Έμ

cargo install tudiff
git clone https://github.com/withoutsalsu/tudiff.git
cd tudiff
# Build only
cargo build --release
# Or install to cargo bin directory
cargo install --path .
# For development
cargo run -- <dir1> <dir2>
# If built from source
./target/release/tudiff <dir1> <dir2>
# If installed with cargo install
tudiff <dir1> <dir2>
# Use simple text output instead of TUI (for scripting/piping)
tudiff --simple <dir1> <dir2>
cargo run -- --simple <dir1> <dir2>
# Enable verbose logging (creates tudiff.log file)
tudiff --verbose <dir1> <dir2>
tudiff -v <dir1> <dir2>
cargo run -- --verbose <dir1> <dir2>
Example:
# Compare two project directories
tudiff ./project-v1 ./project-v2
# Compare backup with original
tudiff ~/Documents /backup/Documents
# Use simple text output for scripting or piping
tudiff --simple ./project-v1 ./project-v2 | grep "\[L\]"
# Enable verbose logging for debugging
tudiff --verbose ./project-v1 ./project-v2
Up/Down or j/k: Navigate files/foldersLeft/Right or h/l: Switch between left/right panelsEnter:
PageUp/PageDown or Ctrl+B/Ctrl+F: Half-page scroll (based on terminal height)Ctrl+Home: Scroll to topCtrl+End: Scroll to bottom1: Show all files2: Show only different files3: Show only different files (no orphans)+: Expand all folders-: Collapse all foldersF5: Refresh directoriess: Swap panel contentsCtrl+R / Ctrl+L: Copy selected file (left-to-right / right-to-left)q or Esc: Exitβββββββββββ π οΈ Tools βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π All Files(1) β π Different(2) β β‘ Diff Only(3) β π Expand All(+) β
β π Collapse All(-) β π Refresh(F5) β π Swap Panels(s) β βΆοΈCopy(Ctrl+R) β
β Filter: All Files β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββ Left: /path/to/dir1 βββββββββββββββββββββββ Right: /path/to/dir2 ββββββββββ
β π folder1 2.5K Mar 15ββ π folder1 2.5K Mar 15β
β π file1.txt 1.2K Mar 10ββ π file1.txt 1.2K Mar 10β
β π file2.txt 3.4K Mar 12ββ β
β π folder2 5.1K Mar 14ββ π folder2 8.2K Mar 16β
β ββ π subfolder 1.8K Mar 16β
β ββ π newfile.txt 1.8K Mar 16β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Fast and accurate comparison using step-by-step processing:
Note: This approach provides both speed and accuracy even for large directories.
Folder colors reflect the status of their contents:
This helps you quickly find folders with changes.
# Compare branches
tudiff ./main-branch ./feature-branch
# Before/after refactoring
tudiff ./before-refactor ./after-refactor
# Compare deployed vs local
tudiff ./local-project /mnt/server/deployed-project
# Configuration drift detection
tudiff /etc/nginx /backup/etc/nginx
# Backup verification
tudiff /home/user /backup/home/user
# System state comparison
tudiff /var/log /backup/var/log
# Verify file transfers
tudiff /source/data /destination/data
# Compare directory structures
tudiff /old-system/files /new-system/files
Terminal cursor not blinking after exit:
tput cnormUnicode icons not displaying:
Performance with very large directories:
2) to reduce displayed itemsPermission errors:
Key Rust crates:
ratatui: TUI interface frameworkcrossterm: Cross-platform terminal manipulationclap: Command line argument parsingwalkdir: Efficient directory traversalsimilar: Text difference algorithmscrc32fast: Fast CRC32 checksum calculationanyhow: Error handling and contextMIT License
tudiff vs other directory comparison tools:
tudiff provides the best of both worlds: powerful comparison features in a lightweight, terminal-native interface.