A simple desktop application to analyze and visualize storage usage.
Duminous.mp4
- 🌳 Fast Folder Scanning:
- Concurrent file system exploration
- Concurrency level adjustable via
SCAN_CONCURRENCYenvironment variable (Default: Half of logical CPUs) - Correctly handles Symlinks and Windows Reparse Points (Junctions) to prevent infinite loops and incorrect size calculations
- 📊 Detailed Information Display:
- File/Folder name
- Size (automatic unit conversion)
- Percentage of total usage (percent display + bar graph)
- File count
- 💾 Physical Disk Size Calculation:
- Toggle "Calculate Size on Disk" to measure actual disk usage
- Accounts for sparse files, compression, and filesystem block allocation
- 📋 Sorting: Sort by any column (name, size, percentage, file count)
- 🔄 Refresh: Rescan to reflect the latest folder structure
- 📂 Open File: Double-click to open files/folders in the OS default application
⚠️ Error Handling: Visualization of inaccessible folders
Go to the Releases page and download the executable for your operating system.
This application uses the Wails framework.
- Frontend: Svelte + Vite (HTML/CSS/JS)
- Backend: Golang (System calls, File operations)
- Communication: Wails runtime (Frontend-Backend binding)
Duminous/
├── app.go # Wails application logic (API definitions for Frontend)
├── scanner.go # Folder scanning and size calculation logic (Go)
├── main.go # Entry point
├── frontend/ # Frontend (Svelte)
│ ├── src/
│ │ ├── lib/
│ │ │ └── components/
│ │ │ └── FileTree.svelte # Recursive file tree component
│ │ ├── App.svelte # Main UI and sort logic
│ │ └── style.css # Global styles (Dark Theme)
│ └── wailsjs/ # Automatically generated Go bindings (JS)
└── build/ # Build artifacts and configuration
- Go 1.24+
- Node.js 16+
- Wails CLI:
go install github.com/wailsapp/wails/v2/cmd/wails@latest
wails devThe application will start in windowed mode and automatically reload on source code changes.
wails buildThe executable file will be generated in the build/bin/ directory.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
If you encounter any issues or have questions, please file an issue on the GitHub Issues page.
MIT License
Daisuke (yet another) Maki (GitHub)
