A Tauri desktop disk usage analyzer built with Rust, React, and shadcn/ui.
Space Lenser gives you a desktop view into storage usage. It uses a Rust scanner backend through Tauri commands and a React frontend for drive selection, scan progress, hierarchical browsing, category breakdowns, and permission/error visibility.
- Filesystem explorer: Uses a Rust scanner backend with lazy directory discovery, cached listings, and streamed progress.
- Desktop UI: Tauri v2 shell with a React + shadcn/ui frontend.
- Scan progress: Tracks active scans and updates the explorer as results become available.
- Permission handling: Checks macOS Full Disk Access state and exposes the app permission request from the desktop UI.
- Access debugging: Shows unreadable paths and scan errors from the Rust backend.
- Smart navigation: Respects filesystem boundaries to avoid unexpected mounted-drive traversal.
- Usage distribution: Breaks usage down by file categories such as apps, media, code, and archives.
- Rust (latest stable version)
- Node.js and npm for the Tauri desktop frontend
- Tauri v2 system dependencies for your platform
git clone https://github.com/vanrez-nez/space-lenser.git
cd space-lenser
npm --prefix src-web install
npm --prefix src-web run tauri:buildRun the Tauri desktop app from the repository root:
npm --prefix src-web install
npm --prefix src-web run tauri:devValidate the workspace:
cargo fmt --check
cargo test
npm --prefix src-web run typecheck
npm --prefix src-web run buildBuild a local macOS DMG from the repository root:
npm --prefix src-web run tauri:build:dmgCreate a draft GitHub release with an automated version bump, commit, tag, DMG build, and asset upload:
npm --prefix src-web run release:github -- patchUse minor or major instead of patch when preparing larger SemVer releases. The release script requires a clean git working tree, GitHub CLI authentication, Developer ID signing, and Apple notarization credentials.
For local macOS signing, set:
export APPLE_SIGNING_IDENTITY="Developer ID Application: Your Name (TEAMID)"
export APPLE_API_KEY="KEYID"
export APPLE_API_ISSUER="ISSUER-UUID"
export APPLE_API_KEY_PATH="/path/to/AuthKey_KEYID.p8"Unsigned test-only releases can be forced with ALLOW_UNSIGNED_MACOS_RELEASE=1, but downloaded apps may be blocked by Gatekeeper.

