Skip to content

cyberlife-coder/diskrune

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸͺ¨ diskrune

Fast parallel disk space analyzer for Windows, macOS and Linux. Built with Rust + Tauri 2, powered by Rayon work-stealing parallelism.


Features

  • 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() from readdir cache instead of a separate stat() 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

Screenshots

Coming soon β€” run locally with cargo tauri dev


Build

Prerequisites

  • 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

Development

git clone https://github.com/cyberlife-coder/diskrune.git
cd diskrune
cargo tauri dev

Release build

cargo tauri build

The installer is generated in src-tauri/target/release/bundle/.


Architecture

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()

Performance design

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

IPC payload strategy

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.


Ecosystem

diskrune is part of the Veles ecosystem by Wiscale France.


License

MIT

About

πŸͺ¨ Disk space analyzer with interactive tree view β€” by Wiscale France.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors