# ddupe
[](https://github.com/Morrolan/ddupe/actions/workflows/ci.yml)

[](https://github.com/Morrolan/ddupe/releases)
[](LICENSE)


**ddupe** is a fast, safe, cross-platform command-line tool for finding and removing duplicate files.
Duplicates are detected by hashing file contents using **SHA-256**, so files are matched by **content**, not name or location.
Useful for cleaning up:
- Photo collections
- Download folders
- Backups / archives
- Source trees
- Any directory full of near-identical files
ddupe works recursively and will scan an entire directory tree.
---
## 📘 Summary
| **Name** | `ddupe` |
| **Description** | Fast, safe, cross-platform duplicate-file detector & cleaner |
| **Languages** | Rust (CLI, async-ready, cross-platform) |
| **Supported OS** | Linux · macOS · Windows |
| **Duplicate Method**| SHA-256 content hashing (filename/location independent) |
| **Key Features** | Recursive scan · Colourised output · Progress bar · Dry-run mode |
| **Safety** | Interactive confirmation step before deletion |
| **Binary Releases** | Available for Linux/macOS/Windows (built via GitHub Actions) |
| **License** | MIT |
| **CI** | rustfmt · clippy (warnings = errors) · unit + integration tests |
## 🚀 Capabilities at a Glance
- 🔎 **Deep recursive scanning** of entire directory trees
- 🧠 **Content-based detection** using SHA-256 hashes
- 🎨 **Readable output** with colours and group markers
- 📊 **Progress bars** for large scans
- 🧪 **Dry-run mode** for safe previews
- 🗑️ **Optional deletion** with clear KEEP/DUPE status
- 💾 **Total space estimate** before removing anything
- 🧰 **Pure Rust library** + thin CLI wrapper
- 🌍 **Cross-platform binaries** via GitHub Actions
## ❓ Why ddupe?
Most duplicate cleaners rely on filenames, heuristics, or metadata.
ddupe instead:
- hashes the actual **file content**
- groups truly identical files regardless of name or location
- avoids false matches or “smart guessing”
- works the same on Linux, macOS, and Windows
- is scriptable, testable, and written with safe Rust practices
## ✨ Features
- 🔍 **Fast recursive scanning**
- 🧠 **Content-based deduplication (SHA-256)**
- 🎨 **Colourised output for clarity**
- 📊 **Progress bar while hashing**
- 🧮 **Reports how much disk space can be freed**
- 👟 **Interactive mode (`-i`) to accept/reject each duplicate**
- 🔒 **Safe by default** – always asks before deleting
- 🧪 **Dry-run mode** (`--dry-run`) to preview deletions
- 💥 Optional Windows/Linux/macOS binaries (cross-compiled)
---
## 📦 Installation
### 🔧 Build from source (recommended)
```bash
git clone https://github.com/yourname/ddupe.git
cd ddupe
cargo build --release