# SmartZipView 0.8 Beta — Release Notes

> **Play videos & read PDFs directly from inside archives. No full extraction. No waiting.**

SmartZipView is a high-performance Windows desktop app that streams media **directly from inside `.7z` / `.zip` archives** — without extracting the whole archive to disk. Instead of waiting for a multi-GB archive to decompress first, files are fed to the player / renderer **through in-memory pipes** in real time. Zero temporary files in the happy path.

---

## ✨ What's New in 0.8 Beta

- **ZSTD-compressed `.7z` containers now play** — the archive engine was upgraded to NanaZip Core 6.5 (ABI-compatible with 7z.dll, built-in ZSTD decoder). ZSTD solid archives open, browse, extract and play correctly.
- **Smarter password gate** — no more false "enter password" popups on unencrypted archives; error classification now distinguishes *real* password failures from broken pipes / data errors.
- **Encrypted-header 7z fixed** — archives with "Encrypt file names" (header encryption) now prompt for a password instead of showing "Engine parse error". Previously the file list itself was unreadable without the password and the error was misclassified.
- **Stream-friendly playback** — MKV etc. play straight from the archive via `pipe:0`; MP4 with trailing `moov` falls back to a temp-file engine automatically.
- **Localized UI (EN / 中文)** — full i18n with a one-click language toggle in the toolbar; default English.
- **Polished button UX** — hover states now brighten to highlight the focused control instead of darkening.
- **Rebranded to SmartZipView** — new product name across the UI, title bar and build output.

## 📦 Core Features

| Feature | Description |
| --- | --- |
| 🔓 **Open archives in place** | 7z / zip / rar / tar / gz / iso / bz2 / squashfs / rpm, via drag & drop or file picker |
| ▶️ **In-archive video playback** | Double-click a video inside the archive → plays through ffplay with GPU decode (`qsv` / `cuda` / `d3d11va`) straight from a memory pipe |
| 🖼️ **In-archive image preview** | Stream-decode images without extraction; fullscreen viewer with 8K / 0.1×–50× zoom |
| 📄 **PDF reader (ghost mode)** | Fullscreen dual-page reader with LRU page cache, parallel rendering and aggressive preloading |
| 🧲 **External player tunnel** | Hand the archive URL to any external player (PotPlayer, MPC-HC, mpv…) over a local HTTP **Range** server — full seek support |
| 🔑 **Password handling** | Auto-detect encrypted entries, verify via in-memory probe, brute-force protection (max 11 tries) |
| 🌐 **Bilingual UI** | Switch between English and Simplified Chinese in one click (default English) |
| 🎨 **Polish** | Dark/light theme, layout memory, GPU mode selector, hover-preview toggle, brightened hover feedback |

## 🚀 Quick Start

1. Unzip `SmartZipView-0.8.0-single.zip` to any folder.
2. Run `SmartZipView.App.exe` (Windows x64, **no install required**).
3. Drag an archive onto the window, or click **Open**.
4. Double-click a video / PDF / image inside — it streams immediately.

> ⚠️ Keep the whole folder together — the native DLLs next to the exe are **required**.

## 🖥️ System Requirements

- Windows 10 x64 or later
- ~150 MB disk space for the core app (no ffmpeg bundled)
- .NET runtime is **self-contained and bundled inside a single exe** — nothing to install

## 📦 Package Layout (single-file release)

Everything is bundled into `SmartZipView.App.exe` (managed code + .NET runtime, ~104 MB). Only the native plugins sit next to the exe:

| File / folder | Why it stays external |
| --- | --- |
| `7z.dll`, `7z_official.dll`, `NanaZip.Codecs.dll`, `K7Base.dll`, `K7User.dll` | 7-Zip engine loaded via P/Invoke by path |
| `pdfium.dll`, `rex_pdf_bridge.dll` | PDF rendering, loaded via P/Invoke |

> ✅ **FFmpeg is NOT bundled** — it is downloaded separately (see below) to keep the package small.

### 📺 Optional: FFmpeg for video playback

Video playback and thumbnails require `ffmpeg.exe` / `ffplay.exe`. If you skip this, the app still works fully for archives, images, PDFs and extraction — only video features are disabled.

1. Download the latest build from the official FFmpeg site:
   - <https://ffmpeg.org/download.html> (or the popular gyan.dev full build: <https://www.gyan.dev/ffmpeg/builds/>)
2. Extract and place the two executables here:
   - `Infrastructure\Binaries\ffmpeg.exe`
   - `Infrastructure\Binaries\ffplay.exe`
   - (Create the `Infrastructure\Binaries\` folder inside the app directory if it doesn't exist.)
3. Restart SmartZipView — video playback is now enabled.

### 🎬 Recommended external player: MPC-HC

For the best in-archive video experience, SmartZipView can hand the archive URL to an external player over its HTTP Range tunnel. [MPC-HC](https://github.com/clsid2/mpc-hc/releases/tag/2.7.4) is a great free, open-source choice:

- Pick it as the external player via **Right-click → Play with external player**, or set it as the default in Settings.
- Full seeking works through the tunnel.

## ⚠️ Known Limitations (Beta)

- `.zst` / `.zstd` / `.tzst` single-file archives are recognized but not yet extractable (only `.7z` containers use ZSTD today).
- MP4 files with the `moov` atom at the end cannot seek in `pipe:0` mode — the app auto-falls-back to a temp-file engine for those.
- Zip creation / compression is **not** implemented yet — extraction only.

## 📜 Third-Party Components & Licensing

| Component | Purpose | License |
| --- | --- | --- |
| SevenZipSharp | Managed 7-Zip wrapper | LGPL |
| NanaZip Core 6.5 (7z.dll + Codecs) | Archive engine, ZSTD support | LGPL / MIT |
| Pdfium + Rust bridge | PDF rendering | BSD-3 |
| Avalonia UI + Semi theme | UI framework | MIT |

> ℹ️ **FFmpeg is not bundled** in this release — you download it yourself (see the FFmpeg section above). This keeps the package small and avoids shipping a GPL build. If you redistribute the app together with a GPL ffmpeg build, you must swap it for an LGPL build or compile FFmpeg with `--disable-gpl --disable-nonfree`. See the project README (license compliance section) for details.

## 🗂️ Repository

- **Source**: managed C# / Avalonia UI (.NET 11, win-x64) + Rust (PDF bridge) + FFmpeg.
- **Feedback / issues**: please open a GitHub issue with a reproducible archive if playback or preview fails.

---

*SmartZipView 0.8 Beta — built 2026-08-06. Enjoy streaming straight from the archive!*
