Skip to content

YSF-Studio/ziploom

Repository files navigation

ZipLoom 📦

CI/CD Build Audit License: MIT Platform

Archive compression, extraction & forensic inspection — 100% offline. Built with Tauri v2 + Rust + Svelte 5.

User guide Developer docs
docs/USER_GUIDE.md — install, every tab, password ZIP, troubleshooting docs/DEVELOPER.md — architecture, tests, CI, contributing

Screenshots

Captured in light mode using real sample-file paths and fixture-backed data so the UI reflects the app’s actual archive workflow.

Compress Extract
Compress Extract
Inspect About Password ZIP
Inspect About Password ZIP

✨ Features

Tab What you can do
Compress ZIP, TAR, TAR.GZ, TAR.BZ2, TAR.XZ, TAR.ZST — drag & drop files/folders, compression level, optional password-protected ZIP (AES-256, 7-Zip / WinRAR compatible), clean macOS metadata
Extract ZIP, TAR, GZ, BZ2, XZ, ZST, 7z, RAR — pure Rust, no external CLI; password dialog for encrypted archives
Inspect Load metadata → Full Scan (per-file MD5/SHA1/SHA256, Shannon entropy, magic-byte mismatch detection, timestamp awareness), tree/flat view, preview, threats/anomalies, CSV export, extract selected files
About Version, feature list, legal disclaimer, offline privacy statement

UI & privacy

  • Theme toggle in the titlebar — Light → Dark → System (one labeled button, no duplicate icon)
  • Drag & drop on all workflow tabs
  • 100% offline — no telemetry, no network calls for core features
  • Forensic results are informational only — verify independently before legal use
  • Inspect includes a 25+ signature magic-byte database, explicit detected-vs-extension mismatch cues, and timestamp anomaly highlighting

Inspect highlights

  • Split layout: virtualized file table + detail/findings panel
  • Progress bar for long scans, hashing, and extraction
  • Preview inside archives (text / hex / image, size-capped)
  • Flagged-only filter, magic mismatch filter, suspicious timestamp filter, configurable columns, hash copy-on-click

Forensic disclaimer

  • ZipLoom is not a certified forensic tool.
  • Entropy, hash, magic-byte, timestamp, and heuristic scanner signals are for triage, reference, and education only.
  • Hashes are integrity checks, not a replacement for formal chain-of-custody procedures.
  • Anomalies and mismatches are indicators to investigate, not final conclusions.
  • All analysis is performed locally and offline. Nothing is uploaded or sent to a server.

📋 Quick usage

Compress

  1. Add files or folders (browse or drag & drop).
  2. Choose format and options (password for ZIP only).
  3. Click Compress → pick save location.

Extract

  1. Select an archive.
  2. Click Extract → choose output folder.
  3. Enter password if prompted.

Inspect

  1. Select an archive → Load.
  2. Optional: Full Scan for hashes, entropy, magic-byte analysis, and timestamp checks.
  3. Preview files, export CSV, or Extract Selected.

→ Full step-by-step guide: docs/USER_GUIDE.md


📦 Format support

Format Compress Extract Inspect Notes
ZIP Password AES-256 supported
TAR / .tar.gz / .tar.bz2 / .tar.xz / .tar.zst
7z
RAR Not on Windows (build limitation)

🚀 Quick start

Run from source

git clone https://github.com/YSF-Studio/ziploom.git
cd ziploom
npm install
npm run tauri:dev

tauri:dev builds dist/ automatically on first run (Tauri requires it at compile time). Dev server: http://localhost:1422 — use tauri:dev, not npm run dev, for full archive features.

macOS prerequisites

xcode-select --install
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash
source "$HOME/.nvm/nvm.sh"
nvm install 22
nvm use 22

If rustup warns about Homebrew Rust (/opt/homebrew/bin), answer y to proceed or run brew uninstall rust. Run commands one per line without trailing # comments.

Build installer

npm run tauri:build

Linux dependencies (build)

sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libssl-dev libpcap-dev

🧪 Tests

npm run test:e2e      # Rust — 7 workflow tests (ZIP/TAR/password)
npm run test:gui      # Playwright — 15 UI smoke tests
npm run test:all      # Both

npm run screenshots   # Regenerate README screenshots
Suite Coverage
IPC coverage Static — all frontend invoke() commands registered in Rust
E2E (Rust) 12/12 — compress/inspect/extract, forensic scan, hash, preview, IPC registry
GUI smoke 20/20 — tabs, password ZIP, preview, about centering, no console errors

CI runs on ubuntu, macos, and windows on every push to main, including Playwright GUI smoke tests on Ubuntu.


🏗️ Tech stack

Layer Stack
Shell Tauri v2
Backend Rust — commands.rs + ysf-core
Frontend Svelte 5 + Vite 6
Archives zip, tar, sevenz-rust, unrar (Unix)
Forensic Streaming hashes (256 KB buffer), entropy, magic-byte DB

ysf-core lives in src-tauri/crates/ysf-core/. See docs/DEVELOPER.md for architecture and contribution notes.


📁 Sample files

Path Purpose
samples/ Demo documents for manual testing
tests/fixtures/e2e/ Automated fixtures (sample_alpha.txt, nested/…)

📄 License

MIT © YSF Studio

Made by Yusuf Shalahuddin Al Ayyubi As Sobari

About

ZipLoom — Archive Utility & Forensic Inspector. Pure Rust, Offline, Private. Tauri v2 + Rust + SvelteKit.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors