https://github.com/nathannncurtis/canopy
Windows disk size analyzer
https://github.com/nathannncurtis/canopy
cpp csharp disk-analyzer disk-space ntfs treemap windows wpf
Last synced: 6 days ago
JSON representation
Windows disk size analyzer
- Host: GitHub
- URL: https://github.com/nathannncurtis/canopy
- Owner: nathannncurtis
- License: gpl-3.0
- Created: 2026-06-18T22:13:02.000Z (21 days ago)
- Default Branch: master
- Last Pushed: 2026-06-18T23:21:27.000Z (21 days ago)
- Last Synced: 2026-06-19T00:14:47.919Z (21 days ago)
- Topics: cpp, csharp, disk-analyzer, disk-space, ntfs, treemap, windows, wpf
- Language: C++
- Size: 61.5 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# canopy





**A fast Windows disk space analyzer with a native WPF interface.**
---
## Why Canopy?
Most disk analyzers either scan slowly or feel dated. Canopy uses the NTFS Master File Table directly (the same index Windows already maintains) to enumerate every file on a volume in a single pass without opening any files. On large drives this is dramatically faster than walking the directory tree the conventional way.
- MFT enumeration via USN journal (`FSCTL_ENUM_USN_DATA`) for local NTFS volumes
- `NtQueryDirectoryFile` with a thread pool for UNC paths (`\\server\share`)
- AVX2 SIMD size accumulation with runtime CPU dispatch and scalar fallback
- Squarified treemap with drill-down navigation (left-click in, right-click out)
- Directory tree view with proportional size bars
- Fluent Design UI (WPF-UI, Mica backdrop, dark theme)
## Requirements
- Windows 10 or later
- Administrator privileges for MFT scanning (falls back to directory scan without elevation)
## Usage
Download the latest release ZIP, extract it, and run `Canopy.exe`. The DLL (`Canopy.Core.dll`) must stay alongside the EXE.
Enter a local path (`C:\`) or a UNC path (`\\server\share`) and click **Scan**.
## Building from Source
**Prerequisites:** Visual Studio 2022 (C++ workload), CMake 3.25+, .NET 9 SDK.
```bat
build.bat
```
Output lands in `dist\Canopy\`. The build is unsigned.
Or build components separately:
```bat
cmake -S Core -B Core\build -A x64
cmake --build Core\build --config Release
dotnet publish App\SizeMonitor.App.csproj -c Release -r win-x64 --self-contained true -o dist\Canopy
copy Core\build\bin\Release\Canopy.Core.dll dist\Canopy\
```
## License
GPL-3.0. See [LICENSE](LICENSE).