Why I built Zero
My backup drive was failing. I needed to get 250GB off it before it died completely. The USB connection kept dropping — and every time it did, Finder restarted the entire copy from scratch. No resume. No way to pick up where it left off. When it finally failed at 80%, I had no idea which files had actually made it across. Finder doesn't verify. It doesn't checksum. It doesn't even tell you which files succeeded. You're left guessing whether your backup is complete or half-corrupted.
I wrote a copy tool in Rust. Resumable — picks up exactly where it stopped. Checksums every file after transfer. Real-time output: file count, percentage, speed, ETA, and which file is copying right now. Not a vague progress bar.
It got my data out.
Now I had a failing drive full of personal data. Can't throw it out. Microwaving it felt excessive. macOS has a secure erase option — buried in Disk Utility, limited erasure levels, non-resumable. That flaky USB connection dropped mid-erase. Start over. For a drive that's already unreliable, that's useless. So I built resumable secure erase.
The data was safe, but spread across three backup drives with years of overlapping copies. Same photos, same project folders, duplicated everywhere. macOS can't tell you what's duplicated, let alone across drives. I built dedup — finds identical files across any number of drives in seconds.
At this point I had reliable copy, secure erase, and dedup. But every backup was still manual. Plug in a drive, run the sync, remember which folders go where. I wanted something simple: plug in the drive and it syncs. macOS doesn't do this. Time Machine is all-or-nothing and breaks in opaque ways. I built sync profiles with automation triggers.
Then Spotlight. I'd disabled its data sharing with Apple months earlier — the setting that sends your search queries to Apple's servers. At some point it re-enabled itself. I found out by accident. Even with Spotlight fully running and phoning home, it couldn't find my files. Couldn't find installed applications. Basic searches returned nothing. I turned off its network access to stop the sharing — Finder search broke entirely. They're coupled. macOS 26.1 can't search my own filesystem without phoning home. I replaced it. 1.7 million files in 83ms. Fully local. Nothing leaves the machine.
My dev disk was out of space. target/, DerivedData/, node_modules/ — gigabytes of build artifacts from projects I hadn't opened in months. macOS has no way to find them, no way to see how much space they eat in total. I built cleanup — 36 categories of build artifacts, caches, and dead dependencies. See the damage, pick what to reclaim.
Those were the problems I could solve. Some I'm still living with.
I have Dropbox and Box installed for work — two proprietary binaries with full disk access and background processes, just to sync folders. I want to send a file to a friend without routing it through a cloud provider that hands data to governments or trains models on it. Every trace macOS scatters across my system — metadata, caches, .DS_Store files, Spotlight indexes that outlive the files they indexed — hidden and impossible to clean. CleanMyMac, the most popular tool for this, shares your file paths with Google, Facebook, and Microsoft.
I started with a failing USB drive. Each problem led to the next. Nothing that existed solved any of them. 53,000 lines of Rust later, Zero exists.
Pure Rust
Zero started as that CLI copy tool. It became a Rust core with a SwiftUI frontend — that worked. But going pure Rust changed everything.
- Cross-platform from one codebase — macOS, Linux, Windows. Same code, same privacy guarantees.
- No serialization bottleneck — The SwiftUI version serialized 100,000+ search results across the Rust–Swift FFI boundary on every query. Pure Rust renders directly from the index.
- Fewer lines of code — No FFI bindings, no bridge layers, no Swift wrappers. One language, one build system.
- No unsafe blocks — The FFI boundary required
unsafeeverywhere. Remove the boundary, remove theunsafe.
What's built
53,000 lines of Rust. 769 tests.
- Resumable copy — Picks up where it left off. Checksums every file. Real-time progress.
- Search — 1.7M files in 83ms. Type filters in 0.04ms. Fully local.
- Deduplication — Identical files across any drive, in seconds.
- Secure erase — Resumable. Not buried three menus deep.
- Developer cleanup — 36 categories. See the damage, pick what to clean.
What's coming
P2P encrypted file sharing — direct, no server stores content. Native cloud transfers without vendor apps. Automated sync policies. Privacy footprint scanner. App inventory with signature verification. Encrypted search index — stolen laptop reveals nothing.
One app. Fully local. No network calls unless you make them.