Drive Sonar
Drive Sonar is a fast, lightweight desktop disk usage explorer and analyzer built with Tauri v2, Rust, React, and TypeScript.
Drive Sonar is inspired by the simplicity of ncdu. Drive Sonar offers different visualizations to help you gain a better idea of your disk usage.
Drive Sonar runs entirely in user mode—no admin mode or elevated privilege is required to scan even the most protected corners of your disk. It's also fully open source, so you can see exactly what it's doing and build it yourself if you'd rather not trust a binary.
⚡ Features
- Fast Parallel Scanning: Native fast-path scanning on Windows and a multi-threaded fallback for other platforms
- Interactive Visualizations:
- Space Distribution Map: High-performance storage treemap
- Extension Breakdown: Top file extensions by storage utilization
- File Age Analysis: Scatter plot visualizing file size vs. age
- In-App File Management: Open files or folders directly in native OS file managers or safely move items to system trash (requires confirmation + additional background safety checks)
- Local-Only Stats: A lifetime total of what you moved to the Trash is kept in the app's local storage on your device, with no network use and no telemetry; reset it anytime from the About dialog
- Print Scan Report: Not just identify what's causing high disk usage, but also export a report for the future reference
- Security Hardened: Path canonicalization guards against relative traversal, strict Content Security Policy (CSP), and system root deletion protection
- No Admin Required: Runs entirely in user mode, unlike many disk analyzers that need elevated privileges to scan protected directories
- Open Source: Apache 2.0 licensed—inspect the code, fork it, or build it yourself
Disk Scanner Performance Comparison
| Metric | Drive Sonar | WinDirStat | WizTree |
|---|
| Version tested | 0.6.0 | 2.8.0 | 4.3.1 |
| License | Apache 2.0 | GPL v2 | Proprietary |
| Runs in user mode (no admin required) | ✅ | ✅ | ❌1 |
| Installed size [MB] | 5.7 | 7.1 | 20.0 |
| Peak memory usage (median)2 [MB] | 108.7 | 239.6 | 635.2 |
| Warm scan time (median)3 [s] | 3.3 | 9.1 | 6.5 |
| Cold scan time (single run)4 [s] | 10.6 | 22.9 | 17.2 |
🤔 Why Drive Sonar?
Primarily, this started as a hands-on project to learn Rust and Tauri. But it's also grown into something I actually reach for: Windows' native storage view is fairly high-level, and I wanted something like ncdu, but with a GUI—fast and minimal, insightful without visual clutter, and one that doesn't demand admin rights just to tell me where my disk space went.
📥 Download
Pre-built binaries are available on the Releases page. Download the installer for your platform, run it, and you're good to go—no build step required.
Note: The Windows installer isn't code-signed yet, so you'll likely see a Windows SmartScreen warning ("Windows protected your PC") on first run. This is just because the binary doesn't carry a paid publisher certificate—it's not a sign of malware. Click More info → Run anyway to proceed. Signing is on the radar for a future release.
🚀 Getting Started
On Windows, Drive Sonar requires Windows 10 version 1709 (October 2017 Update) or later. macOS and Linux have no additional version requirement.
Prerequisites
Development
Install dependencies:
npm install
Run the application in development mode:
npm run tauri dev
Production Build
Build the optimized desktop binary:
npm run tauri build
🧪 Unit Testing
Frontend (React / TypeScript)
First, ensure all project dependencies (including test libraries) are installed:
npm install
Run frontend unit tests with Vitest:
npm test
To generate frontend code coverage reports:
npm run test:coverage
Backend (Rust)
Run backend Rust unit tests:
cargo test --manifest-path src-tauri/Cargo.toml
To generate code coverage reports, install cargo-tarpaulin (if not already installed) and run:
cargo tarpaulin --manifest-path src-tauri/Cargo.toml --ignore-tests
📦 Release Process
To create a new release:
- Bump Version: Set the same version number (e.g.,
0.4.0 -> 0.5.0) in:
- Merge to
main: Commit changes, raise a PR, and merge into main. Release Drafter uses the version in src-tauri/tauri.conf.json for the draft's name, tag, and changelog link.
- Tag & Push: Checkout the latest
main, confirm the version files and draft agree, and push v<version> matching src-tauri/tauri.conf.json:
git checkout main
git pull origin main
git tag v0.5.0
git push origin v0.5.0
- Publish Release: Pushing the
v* tag triggers the GitHub Actions workflow, which checks that the tag matches the Tauri version before building binaries across platforms and attaching them to the same draft release. Review the notes and binaries, then publish the draft.
Blogs and Videos
Find out more about Drive Sonar:
📜 License
Drive Sonar is open-source software, released under the Apache 2.0 license.