Skip to content

arhum04/mac-storage-analyzer

Repository files navigation

macOS Storage Analyzer (Hardened Czkawka)

License: MIT Rust Slint

A high-performance, read-only storage analysis utility for macOS. This project is a security-focused fork of the excellent Czkawka by Rafał Mikrut, re-engineered to provide deep system observability without the risk of accidental data loss.

The Vision

Modern macOS systems are complex, and traditional "cleaner" tools often pose a risk to system integrity. This "Hardened" version of Czkawka was created to provide the power of Rust-based analysis with a zero-risk safety profile. It is designed for developers, sysadmins, and power users who need to identify storage bottlenecks, duplicate assets, and corrupt files without granting a tool the permission to modify the filesystem.

Security Architecture (Hardening Details)

The core value of this fork lies in its multi-layered safety approach. Unlike tools that simply hide "Delete" buttons in the UI, this project enforces safety at the compiler level:

1. Library-Level Neutering

The underlying Rust core library (czkawka_core) has been modified to disable all destructive I/O operations. Functions such as trash_delete, remove_single_file, and remove_folder_if_contains_only_empty_folders have been refactored to return hardcoded safety errors. This ensures that even if a UI bug or a malicious actor attempted to trigger a deletion, the core logic would block it at the source.

2. CLI Dispatcher Hardening

The command-line interface (czkawka_cli) has been updated to ignore all modification flags. High-risk commands like VideoOptimizer and ExifRemover have been explicitly disabled in the dispatcher, ensuring the CLI remains a pure observation tool.

3. UI/UX De-Risking

The Slint-based Krokiet frontend has been streamlined to remove all destructive action buttons (Delete, Move, Trash, Rename). The user interface is focused entirely on discovery and analysis.

Technical Features

  • Blazing Fast Scans: Leverages Rust's concurrency model (Rayon) to scan massive directories in seconds.
  • Perceptual Hashing: Identify similar images and videos using advanced visual comparison algorithms.
  • Audio Fingerprinting: Find duplicate music files based on acoustic properties, not just metadata.
  • Comprehensive Analysis: Detect broken archives, PDF files, invalid symlinks, and zero-byte files.
  • Native Experience: Built with Slint for a modern, responsive UI that feels at home on macOS.

Tech Stack

  • Language: Rust (2024 Edition)
  • UI Framework: Slint
  • Core Libraries: Rayon (Concurrency), Blake3/XXHash (Hashing), Symphonia (Audio), Image/Video crates.
  • Architecture: Multi-crate workspace with shared core engine.

Usage

CLI

# Search for duplicate files in your Documents folder
czkawka_cli dup -d ~/Documents

GUI (Krokiet)

The GUI provides a rich, visual way to explore your storage. Simply run the krokiet executable to begin.

License & Attribution

This project is licensed under the MIT License. Original Creator: Rafał Mikrut (qarmin). Original Project: Czkawka.

Note: This is a personal modification focused on safety and observability. Please refer to the original repository for the full-featured, destructive version of the tool.

About

A high-performance, read-only storage analysis utility for macOS. Security-focused fork of Czkawka.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors