High-Performance Disk Analysis: The Quickest Way to Explore Storage on Your Terminal

QDUX (Quick Disk Usage eXplorer) is a high-performance interactive terminal disk analyzer. It combines a deep-queue multi-threaded parallel scanning engine (with optional io_uring support) and a sharded, mutex-protected persistent cache.

Download & Compile Explore Features
qdux@localhost: ~/github/fastdu

QDUX Core Features & Performance

Parallel BFS Scanner

Multi-threaded scanning engine backed by a deep task queue. On Linux, it leverages native io_uring for asynchronous I/O calls, minimizing syscall overhead and CPU wait times.

Sharded Cache

The persistent cache database is split into 64 independent shards protected by individual locks. Minimizes thread contention and allows ultra-fast scans by rebuilding only changed subtrees.

SSH Client/Server Protocol

Browse remote file systems via streaming cache. Automatically sets up SSH Multiplexing to reuse the master connection instantly for file operations, previews, and deletions.

Duplicate Finder

Instantly scan and identify identical files (same size and hash) across the whole directory tree to calculate wasted space and remove them directly from the TUI.

Archive Browser

Browse inside compressed archives (.zip, .tar, .7z, .iso) as if they were directories, with on-the-fly extraction and compression.

Snap & Diff Modes

Record the current state of disk usage and compare it dynamically with subsequent scans, displaying directory size growth and reduction in diff mode.

How Parallel Scanning Works

1

BFS Initialization

Starts the worker thread pool and the finalizer thread, allocating a lock-free queue for directory tasks.

2

Metadata Check

Compares directory mtime and inode with the persistent cache. If identical, the subtree size is loaded in 0ms.

3

Asynchronous Syscalls

On cache miss, worker threads issue low-overhead filesystem calls (openat/fstatat) utilizing async io_uring.

4

TUI Update

The finalizer aggregates sizes, updates parent nodes in cache, and signals ncurses for responsive rendering.

Keyboard Shortcuts & Command Reference

Get Started with QDUX