Skip to content

knowlen/drivescan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Drivescan

CI Coverage Rust Version License

Ultrafast disk scanner - Find the largest files and directories in milliseconds.

Parallel Rust scanner that outperforms traditional tools like ncdu and dust.

Why Drivescan?

  • Fast: 99.8% of files skipped via smart algorithms
  • Smart: Automatically skips virtual filesystems (/proc, /sys, /dev)
  • Efficient: O(K+D) memory - only tracks top results
  • Safe: Written in Rust with comprehensive test coverage

Quick Start

# Build
cargo build --release

# Scan your home directory
./target/release/drivescan --path ~

# Scan entire system (requires sudo)
sudo ./target/release/drivescan --path /

# Customize output
./target/release/drivescan --path /var --top-files 100 --top-dirs 20 --verbose

Installation

Prerequisites: Rust 1.91.1+ (install from rustup.rs)

git clone <repository-url>
cd drivescan
cargo build --release

# Optional: Install system-wide
sudo cp target/release/drivescan /usr/local/bin/

Usage

drivescan [OPTIONS]

Options:
  -p, --path <PATH>              Directory to scan [default: /]
  -f, --top-files <N>            Show N largest files [default: 50]
  -d, --top-dirs <N>             Show N largest leaf dirs [default: 10]
  -t, --threads <N>              Thread count [default: auto]
  -v, --verbose                  Show statistics
      --sample-threshold <N>     Sample after N files/dir [default: 1000]
      --sample-rate <N>          Sample 1/N files [default: 10]
      --no-skip-virtual          Include /proc, /sys, /dev
  -h, --help                     Show help

Examples

# Basic scan
./target/release/drivescan --path /usr

# Detailed statistics
./target/release/drivescan --path /home --verbose

# Custom configuration
./target/release/drivescan \
  --path /var \
  --top-files 100 \
  --top-dirs 20 \
  --threads 8

# Include virtual filesystems (slower)
./target/release/drivescan --path / --no-skip-virtual

Output Example

Drivescan - Ultrafast disk scanner (Phase 4)
Scanning: /usr
Threads: 20

=== Top 10 Largest Files ===
        SIZE  PATH
--------------------------------------------------------------------------------
 1.  239.24 MB  /usr/lib/jvm/java-25-openjdk/jmods/java.base.jmod
 2.  162.42 MB  /usr/lib/firefox/libxul.so
 3.  155.57 MB  /usr/lib32/libLLVM.so.21.1
...

=== Top 5 Largest Leaf Directories ===
        SIZE  PATH
--------------------------------------------------------------------------------
 1.  281.46 MB  /usr/share/fonts/noto-cjk
 2.  239.24 MB  /usr/lib/jvm/java-25-openjdk/jmods
...

Scan completed in 124.35ms

Performance

Benchmark: /usr directory (195,631 files, 15,186 directories)

Tool Time Notes
drivescan 124ms 99.8% files skipped, virtual FS filtering
dust 113ms Mature optimized tool
ncdu ~2-5s Interactive TUI, full scan

Roadmap

  • Phase 1: Parallel scanner with top-K tracking
  • Phase 2: Smart pruning (99.8% skip rate)
  • Phase 3: Adaptive sampling for large dirs
  • Phase 4: Virtual filesystem filtering
  • Phase 5: Progress bar
  • Phase 6: JSON/CSV export
  • Phase 7: Extended metadata (statx, fiemap)

Contributing

Contributions are welcome! See CONTRIBUTING.md for development setup, testing guidelines, and code style requirements.

License

WTFPL (Do What The Fuck You Want To Public License) - See LICENSE file.

About

A very fast disk scanner

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors