Strata
NewWhat’s new in 0.1.0

See everything on your drives.

What it is, who put it there, and whether it’s safe to delete. Strata reads the NTFS Master File Table directly and keeps every view live as files change.

Full scan, system drive
26.2 sWizTree took 86 s on the same drive
First search results
≤ 1.1 msacross 5 million file names
Change on disk to updated view
251–265 msfrom the NTFS change journal
Built-in rules
240across 14 categories and 72 apps

The demo needs JavaScript.

Hover for details, double-click a folder to open it, Ctrl + scroll to zoom. Tab into the window to use the keyboard; Esc returns to the page.

Best viewed on a desktop. On small screens the window is scaled down to fit and doesn’t respond to touch.

Not a screenshot. The app itself.

This window runs Strata’s own interface, built from the same code as the desktop app, on a generated sample volume of 4,000 entries. The maps are laid out in your browser by a port of the app’s layout engine that produces the same bytes. Scanning, insights, cleanup, history and settings need the desktop app, so they show as unavailable.

02Benchmarks

Measured, not promised.

Every figure comes from Strata’s own benchmark suite and is reported as the spread across runs, not the best one. Each says what was measured and on what kind of data.

Measured on an 8-core/16-thread desktop CPU, NVMe SSDs, mid-range discrete GPU, Windows 11.

Strata vs. WizTree vs. File Explorer

Complete scans of the same volume on the same machine, timed from launch to a full size total.

Strata v0.1.0 · 2026-10-09 · 8-core / 16-thread desktop, 32 GB RAM, NVMe SSD, Windows 11

System volume

Full scan time
Full scan time:
ToolFull scan, system volume (lower is better)Note
Strata (MFT) 0.1.026.2 s
WizTree 4.2886 s
Windows File Explorer560 s
Peak memory
Peak memory:
ToolPeak memory, system volume (lower is better)Note
Strata (MFT) 0.1.0918 MiB
WizTree 4.282,857 MiB
Windows File ExplorerNot measured

Open a drive

With admin rights, Strata reads the drive’s Master File Table directly. Without them, a parallel folder scanner fills the same index.

  • 155–291ms

    to parse a million file records from the Master File Table

    All cores, 3.4–6.4 million records per second. This is parsing speed: reading the table off the drive adds disk time.

    In-memory NTFS images

  • 20–23s

    per million files without admin rights

    Standard scanner with exact on-disk sizes, on a real system volume of about 4.6 million entries. A generated 1-million-file tree takes 13.2 s.

    Real system volume

Parsing one million MFT recordsSpread across runs, fastest to slowest. In-memory NTFS images, so disk speed is excluded.
Parsing one million MFT records
MeasurementResult
All cores, fixups, parse and assemble in parallel155–291 ms
One thread, same work, single core0.64–1.02 s

Find anything

Search, the largest-files list and folder listings answer from the in-memory index, never from the disk.

  • ≤ 1.1ms

    to the first search results across 5 million file names

    The complete pass finishes in ≤ 28 ms for every query type tried: substring, prefix, wildcard, path, regex and filters.

    Synthetic index

  • 0bytes

    read from disk when re-checking duplicates

    Unchanged files are answered from the hash cache in under 1 ms. Fresh hashing runs at 2.7, 4.4 and 5.6 GB/s on 1, 2 and 4 threads with data in the OS cache.

    Synthetic files

Answer times from the indexSearch and the largest-files list over 5 million entries; a folder listing over a 100,000-entry folder. Bars that start at zero are upper bounds.
Answer times from the index
MeasurementResult
First search results, 5M names, any query≤ 1.1 ms
Open a 100,000-item folder, largest 200 first8.0 ms
Top 100 largest files, 5M entries12.2 ms
Complete search pass, 5M names, slowest query type≤ 28 ms

Stay current

Strata follows the NTFS change journal, so open views update in place instead of rescanning.

  • 251–265ms

    from a file changing on disk to an updated view

    Change-journal record to the change set the UI applies, end to end.

    Live-update benchmark

  • 1.9s

    to absorb 500,000 files created at once

    The slowest UI tick during the burst took 66 ms and the index was never locked for more than 24 ms. Sustained intake is about 316,000 journal records per second into a 1-million-entry index.

    Live-update benchmark

Live-update timingsOne change measured end to end; burst figures from 500,000 files created at once.
Live-update timings
MeasurementResult
One change, disk to view, journal record to UI change set251–265 ms
Longest index lock, during the 500k burst24 ms
Slowest UI tick, during the 500k burst66 ms
Whole burst absorbed, 500,000 new files1.9 s

Explore without lag

Maps draw on the GPU from layout buffers computed in Rust, so hovering, zooming and drilling stay smooth on very large folders.

  • 100fps

    with 503,464 blocks on screen and no dropped frames

    Hover, zoom and pan sweeps; frame time p95 10.1 ms, p99 10.2 ms. Headless Chromium paces frames at 100 Hz, so 100 fps is the ceiling of the measurement, not of the renderer.

    Headless Chromium, real GPU

Every interaction, on one scaleLogarithmic: each gridline is ten times the one before. Layout and hover figures use synthetic trees.
Every interaction, on one scale
MeasurementResult
Find the block under the cursor, 503k-block map0.12 µs
Hover, end to end in the UI, including DOM measurement18–26 µs
Re-lay out a folder, 100,000 items3.2 ms
Lay out a whole treemap, 1 million entries6.8 ms
Frame time, p99, 503,464 blocks10.2 ms

Light on your PC

A small native app that holds the index compactly and sleeps while nothing changes.

  • 59.2B

    of memory per file, plus its name

    At 5 million entries; 58.7 B at 1 million. Names average 16.5 bytes in the test data.

    Synthetic index

  • ~3MB

    installer download

    The x64 installer package.

    Release build

  • 0wake-ups

    while idle

    No CPU wake-ups in a 3-second idle window. Optional activity tracking costs about 1.1% of one core at 10,000 events per second.

    Live-update and activity benchmarks

Index memory as the drive growsIndex memory is measured per entry at 1 and 5 million entries; names are added at the test data’s average of 16.5 bytes. The 10-million bar is estimated from measured per-entry memory.
Index memory as the drive grows
Drive sizeIndex, 58.7–59.2 B per entryNames, 16.5 B averageTotal
1 million files58.7 MB16.5 MB75.2 MB
5 million files296 MB82.5 MB378.5 MB
10 million files (estimated)592 MB165 MB≈ 0.76 GB
How these were measured
  • Release builds only. Criterion benches use the bench profile (release with debug info); examples and the store bench run with --release.
  • Synthetic data where a result must be reproducible and machine-independent: deterministic generators with fixed seeds model dependency trees, WinSxS-style hardlink farms, media libraries and hex-named caches.
  • Index data averages 11.4% directories and about 16.5 name bytes per entry; layout trees use fan-out 16, 20% directories, depth 12 and log-uniform sizes from 1 B to 4 GiB with 2% empty files.
  • Real data where the operating system is the cost: the standard scanner is timed on a real system volume (about 4.6 million entries) and a generated 1-million-file tree.
  • MFT parsing is measured on in-memory NTFS images built byte-exactly by the test-image builder, isolating CPU cost from disk speed. Full-drive scans are timed separately with the command-line scanner.
  • UI frame times come from a headless Chromium (the WebView2 engine) on the real GPU through ANGLE/D3D11. Headless Chromium paces animation frames at 100 Hz, so 100 fps is the ceiling of that measurement.
  • Runs were taken on a busy machine, so treat results as upper bounds with ±20–30% run-to-run noise. Ranges are the spread across runs.

Reproduce

  • MFT parse
    cargo bench -p strata-ntfs --bench parse
  • MFT scan, real volume (elevated terminal)
    cargo run --release -p strata-cli -- scan C:
  • Standard scanner
    cargo run --release -p strata-walk --example walkbench -- <root> [dirinfo|find] [alloc 0|1] [threads]
  • Standard scanner test tree
    cargo run --release -p strata-walk --example mktree -- <root> 1000000
  • Index, search, live updates, cache
    cargo bench -p strata-index
  • Layout and picking
    cargo bench -p strata-layout
  • Live updates
    cargo bench -p strata-live
  • Duplicates
    cargo bench -p strata-dupes
  • Activity tracking
    cargo bench -p strata-etw
  • UI rendering
    pnpm --dir ui fixtures:large
    pnpm --dir ui dev
    node ui/scripts/run-harness.mjs large treemap
  • Head-to-head (elevated PowerShell)
    powershell -ExecutionPolicy Bypass -File bench\verify-elevated.ps1

Every result, with its workload, in docs/BENCHMARKS.md

03Architecture

The UI never runs elevated.

Privileged work happens in a small helper behind a locked-down named pipe. Without it, a standard scanner feeds the same index.

Strata app · unelevated
WebView2 UI React + WebGL2
Tauri v2 Rust backend indexlayoutclassifysearchstoreclean
strata-walk Standard scanner ReFS · FAT · network · unelevated
Secured named pipe
  • DACL: user + SYSTEM
  • versioned handshake
  • signature checks
strata-helper · elevated
Elevated helper Privileged I/O MFT readUSN tailETWvalidated deletes

Hover or focus a layer to see what it does.

How a delete happens

  1. 01Never-listHard-coded system paths are refused, whatever the rules say.
  2. 02Re-verify by file idRight before acting, the volume serial and 128-bit file id must still match.
  3. 03Recycle BinDeletes go to the Recycle Bin by default, with the undo log written first.
  4. 04RestoreOne click puts it back, and a restore never overwrites.

The full security model

04Download

Get Strata.

Free for Windows 10 22H2 or Windows 11. Pick the installer for your processor; if you’re not sure, it’s x64.

x64

Most Windows PCs, with Intel or AMD processors.

Download for x64

Strata_0.1.0_x64-setup.exe · 6.7 MB

ARM64

Windows on ARM, such as Snapdragon laptops.

Download for ARM64

Strata_0.1.0_arm64-setup.exe · 5.7 MB

Version 0.1.0 · October 10, 2026 · Windows 10 / 11

The installers aren’t code-signed yet, so Windows SmartScreen may ask you to confirm. Installed copies update themselves, and every update is verified against the project’s signing key.

SHA-256 checksums
Strata_0.1.0_arm64-setup.exe
939c707229103a6c139545de998e1197f108adcd20c47e32ed3f46599b7feab9
Strata_0.1.0_x64-setup.exe
c3936301b88d2a80d49a141561eb32cd6a6f642ac447d5a7fa85474ab4196c1e

Check a download in PowerShell with Get-FileHash .\Strata_0.1.0_x64-setup.exe and compare the hash.

No telemetry. Everything stays on your machine.

Scans, history, settings and the undo log stay local. The app only contacts GitHub Releases to check for, download or roll back updates; the installer may fetch Microsoft’s WebView2 runtime, and “Report an issue” just opens your browser.

Find out where your space went.

Free, open source, and native to Windows.