Fast parallel disk space analyzer for Windows, macOS and Linux. Built with Rust + Tauri 2, powered by Rayon work-stealing parallelism.
- Ultra-fast scanning β parallel recursive traversal across all CPU cores via Rayon
- Live scan progress β animated shimmer bar + real-time directory counter while scanning
- Dynamic drive detection β drive buttons populated automatically at startup (Windows: AβZ probe; macOS:
/Volumes; Linux:/,/mnt,/media) - Interactive tree view β expandable directory tree with size bars and percentages
- Top 15 biggest directories β instant ranking with colour-coded usage bars
- Drill-down navigation β click ‡ on any folder to re-scan it as the new root, with breadcrumb history to navigate back
- Full-text search β find any folder by name or path in real time
- Folder picker β browse to any directory with the native OS dialog (π)
- Bounded IPC payload β tree is trimmed to 5 levels before sending to the UI (stats preserved at every cut-off), preventing OOM on large drives like
C:\ - Syscall-efficient β uses
file_type()fromreaddircache instead of a separatestat()per entry - Symlink-safe β symlinks are skipped to avoid infinite loops and double-counting
- Single-pass stats β size, directory count and file count computed in one fold
Coming soon β run locally with
cargo tauri dev
- Rust 1.77+
- Tauri v2 CLI:
cargo install tauri-cli --version "^2" - Windows β WebView2 (included with Windows 11 / available as redistributable)
- Linux β GTK + WebKit system libraries:
sudo apt install libgtk-3-dev libwebkit2gtk-4.1-dev \ libappindicator3-dev librsvg2-dev patchelf
git clone https://github.com/cyberlife-coder/diskrune.git
cd diskrune
cargo tauri devcargo tauri buildThe installer is generated in src-tauri/target/release/bundle/.
src-tauri/src/
βββ main.rs Entry point (hides console window in release)
βββ lib.rs Tauri builder β registers commands and plugins
βββ commands.rs Tauri commands: start_scan, open_path, list_drives
βββ scanner.rs Parallel recursive scanner (Rayon) + AtomicU64 progress counter
βββ node.rs DirNode model, aggregate(), sort_by_size_desc(), trim_to_depth()
| Technique | Impact |
|---|---|
rayon::par_iter() recursive descent |
All CPU cores used automatically |
file_type() instead of metadata() for dirs |
~50% fewer syscalls on dir-heavy trees |
Single-pass aggregate() fold |
3Γ fewer iterations over children |
AtomicU64 progress counter |
Lock-free dir count across rayon threads |
trim_to_depth(node, 5) before IPC emit |
Prevents OOM on 700 k+ node trees |
sort_unstable_by |
Fastest in-place sort, no extra allocation |
Release: lto=true, codegen-units=1, opt-level=3 |
Maximum compiler optimisation |
diskrune sends only the first 5 levels of the directory tree to the frontend.
Aggregated stats (total size, dir count, file count) are preserved at every
trimmed node so all numbers remain accurate. Clicking ‡ on any directory
triggers a fresh start_scan on that path, loading its subtree on demand.
diskrune is part of the Veles ecosystem by Wiscale France.