dumap
A cross-platform disk usage visualizer that scans directories and generates interactive treemap visualizations.
dumap provides two ways to explore disk usage:
export-- generates a self-contained HTML file with an interactive ECharts treemap you can open in any browserview-- opens a native GUI window with a real-time treemap powered by egui, featuring click-to-zoom, breadcrumb navigation, and category-colored file types
Native GUI (dumap view)

HTML export (dumap export)

Install
From crates.io
This installs the dumap binary with the native GUI enabled by default.
To install without the GUI (HTML export only):
From source
The binary will be at target/release/dumap.
Usage
Interactive GUI viewer
Scans the directory and opens a native window with a zoomable treemap. Click a directory to zoom in, right-click or scroll down to zoom out. A depth slider and breadcrumb bar are provided for navigation.
If no path is given, it defaults to your home directory:
HTML export
Scans the directory and writes a self-contained HTML treemap. The --open flag opens it in your default browser.
Options
Common options (both export and view)
| Option | Description |
|---|---|
[PATH] |
Directory to scan. Defaults to your home directory if omitted. |
--include-hidden |
Include hidden files and directories in the scan. By default, any file or directory whose name starts with . is skipped entirely -- hidden directories like .git/, .cache/, and .config/ are never entered, so their contents are excluded too. |
--apparent-size |
Report logical file sizes instead of actual disk usage. By default, dumap uses disk usage (block-allocated size on Unix), which reflects how much space files actually consume on disk. Apparent size is the byte count written to the file, which can be smaller (sparse files) or simply different due to filesystem block alignment. |
export only
| Option | Default | Description |
|---|---|---|
-o, --output <FILE> |
dumap.html |
Path for the output HTML file. The file is self-contained with no external dependencies. |
-d, --depth <N> |
3 |
Number of visible depth levels in the treemap before requiring a click to drill deeper. Higher values show more of the tree at once but can be visually dense. |
--max-scan-depth <N> |
unlimited | Maximum directory depth to traverse during scanning. A value of 1 scans only the immediate children of the target directory. Useful for limiting scan time on very deep trees. |
--open |
off | Open the generated HTML file in your default browser after writing it. |
Examples
# Export your home directory with default settings
# Export /usr with 5 depth levels, open in browser
# View a project directory, including hidden files
# Export with apparent sizes instead of disk usage
File categories
Files are color-coded by type in both the GUI and HTML views:
| Category | Extensions (sample) |
|---|---|
| Code | rs, py, js, ts, go, c, cpp, java, sh, html |
| Image | png, jpg, svg, webp, heic, psd |
| Video | mp4, mkv, avi, mov, webm |
| Audio | mp3, flac, wav, aac, ogg, opus |
| Archive | zip, tar, gz, 7z, rar, iso, deb |
| Document | pdf, doc, docx, txt, md, csv, epub |
| Database | db, sqlite, sqlite3, mdb |
| Executable | exe, dll, so, dylib, class, pyc |
| Font | ttf, otf, woff, woff2 |
| Config | json, yaml, toml, ini, xml, plist |
| Data | bin, dat, parquet, arrow, hdf5 |
| Other | everything else |
Requirements
- Rust 1.88.0 or later (edition 2024)
- For the GUI: platform support for eframe/egui (Linux/macOS/Windows)
License
MIT OR Apache-2.0