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 |
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 |
|---|---|
![]() |
![]() |
| Inspect | About | Password ZIP |
|---|---|---|
![]() |
![]() |
![]() |
| 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 |
- 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
- 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
- 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.
- Add files or folders (browse or drag & drop).
- Choose format and options (password for ZIP only).
- Click Compress → pick save location.
- Select an archive.
- Click Extract → choose output folder.
- Enter password if prompted.
- Select an archive → Load.
- Optional: Full Scan for hashes, entropy, magic-byte analysis, and timestamp checks.
- Preview files, export CSV, or Extract Selected.
→ Full step-by-step guide: docs/USER_GUIDE.md
| 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) |
git clone https://github.com/YSF-Studio/ziploom.git
cd ziploom
npm install
npm run tauri:devtauri: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.
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 22If 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.
npm run tauri:buildsudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libssl-dev libpcap-devnpm 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.
| 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.
| Path | Purpose |
|---|---|
samples/ |
Demo documents for manual testing |
tests/fixtures/e2e/ |
Automated fixtures (sample_alpha.txt, nested/…) |
MIT © YSF Studio
Made by Yusuf Shalahuddin Al Ayyubi As Sobari




