Skip to content

Repository files navigation

Space Lenser

A Tauri desktop disk usage analyzer built with Rust, React, and shadcn/ui.

Space Lenser logo

Space Lenser desktop app screenshot

Overview

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.

Key Features

  • 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.

Installation

Prerequisites

  • Rust (latest stable version)
  • Node.js and npm for the Tauri desktop frontend
  • Tauri v2 system dependencies for your platform

Build from source

git clone https://github.com/vanrez-nez/space-lenser.git
cd space-lenser
npm --prefix src-web install
npm --prefix src-web run tauri:build

Usage

Run the Tauri desktop app from the repository root:

npm --prefix src-web install
npm --prefix src-web run tauri:dev

Validate the workspace:

cargo fmt --check
cargo test
npm --prefix src-web run typecheck
npm --prefix src-web run build

Releases

Build a local macOS DMG from the repository root:

npm --prefix src-web run tauri:build:dmg

Create a draft GitHub release with an automated version bump, commit, tag, DMG build, and asset upload:

npm --prefix src-web run release:github -- patch

Use 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.

Built With

About

Space Lenser gives you a desktop view into storage usage

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages