Prior Art

After building my initial prototype, I went looking to see what else existed in this space. I discovered there's a whole ecosystem of modern disk usage tools written in Rust, each with their own take on the problem. I ended up continuing with my own tool because I wanted to explore the specific question of .gitignore-aware visualization. But for general disk usage analysis, these mature tools are likely better choices. Here are the main tools I found, along with what their documentation emphasizes as key features:

Table of Contents

dirstat-rs

https://github.com/scullionw/dirstat-rs

This one leads with performance claims, which are quite impressive if accurate:

💡 What I Learned

What caught my eye was their terminal UI design - it was my favorite way to show relative sizes in a list view. I like the color coding and ~10 characters for the histogram over other tools which use as much width as they can for the histogram.

dua-cli

https://github.com/Byron/dua-cli

This tool focuses on interactivity and user experience:

💡 What I Learned

Reading their docs made me realize how basic my own deletion workflow was - I was just running duh and then manually typing rm commands in another terminal.

dust

https://github.com/bootandy/dust

Dust takes a different approach, focusing on improving du's output format:

The fact that they explicitly call out terminal width handling hints at how much complexity can hide in seemingly simple CLI tools.

ncdu

https://dev.yorhel.nl/ncdu

This is the classic in the space. While newer tools tend to lead with performance or visualization features, ncdu emphasizes:

Their focus on stability and universal compatibility provides an interesting contrast to the newer Rust tools (including mine) that tend to prioritize performance and visual design.

dutree

https://github.com/nachoparker/dutree
https://web.archive.org/web/20190205165745/https://ownyourbits.com/2018/03/25/analyze-disk-usage-with-dutree/

dutree tries to split the difference between traditional and modern approaches:

pdu (parallel-disk-usage)

https://github.com/KSXGitHub/parallel-disk-usage

What's interesting about pdu is that it's the only tool I found that publishes benchmark comparisons. While other tools make performance claims, pdu backs them up with numbers.

GUI Applications

spaceman

https://github.com/salihgerdan/spaceman

GrandPerspective (macOS)

https://grandperspectiv.sourceforge.net/

WinDirStat (Windows)

https://windirstat.net/

Disk Inventory X (macOS)

http://www.derlien.com/

Disk Map: Visualize Disk Usage

https://fiplab.com/apps/disk-map-for-mac https://apps.apple.com/us/app/disk-map-visualize-disk-usage/id715464874?mt=12

SpaceSniffer

http://www.uderzo.it/main_products/space_sniffer/

Very interesting tagging idea. I'd quite like to mark some directories as won't fix, and then ignore them from future analysis.

If you want to keep track of examined files you can tag them. Four colors are available. Just hover the mouse on a file and press CTRL+1 to tag it red. There are keys also for yellow, green and blue tagging. Use them as you wish. You can also filter on tags (example: :red will show only red tagges files, :all will show all tagged files and so on). You can also exclude tagged files (example: |:red will exclude all red tagged files)

Disk Space Analyzer: Inspector

https://apps.apple.com/us/app/disk-space-analyzer-inspector/id446243721

TreeSize - Disk Usage

https://apps.apple.com/gb/app/treesize-disk-usage/id774815014

WhatSize

https://www.whatsizemac.com/

Integration Tools

git-sizer

https://github.com/github/git-sizer