warp

SvelteRustTauriDesktop

Overview

High-speed file transfer for Windows — a clean, modern GUI wrapping robocopy. Copy, move & sync with real-time progress, live speed, queue, verify & presets.

Problem

Windows file operations via the command line or default dialogs are slow, opaque, and error-prone. Robocopy is powerful but requires memorizing flags. No modern GUI provides real-time progress, live speed, queue management, and presets for power users.

Approach

Built a Tauri 2 desktop app wrapping robocopy with a minimal Svelte 5 UI. A two-pass system first scans (dry-run) to count total bytes, then transfers with real-time progress parsed from robocopy's stdout. The Rust backend is intentionally thin — robocopy does the heavy lifting.

Architecture

Single Svelte 5 component (~1467 lines) communicates with a 715-line Rust backend via Tauri events. Backend spawns robocopy as a child process, parses stdout line-by-line, and emits warp-progress events every ~400ms for speed tracking. Cancellation stores the child handle in a Mutex for kill+wait. Presets and recent transfers persist in localStorage.

Challenges

Parsing robocopy's English-only stdout (breaks on localized Windows). Speed calculation required a 400ms rolling window for stable readings. Cross-drive moves warn users that robocopy copies-then-deletes (mid-cancel leaves partial state). Throttle mode disables multi-threading for accurate caps. ~10 MB installer vs ~150 MB for Electron equivalents.

Results

A sub-10 MB desktop app that replaces manual robocopy commands and clunky dialogs with a polished GUI. Users get real-time speed, ETA, queue, verify mode, and presets — all powered by Windows' battle-tested engine under the hood.

Technology

Svelte 5RustTauri 2TypeScriptTailwind CSS v4Vite 6
Email copied