Free & open source · MIT

Every archive.
One small app.

Ziplark extracts ZIP, RAR, 7z, tar and ISO, and creates ZIP (AES-256), 7z and tar — from a 1.4 MB binary. One Rust engine, three ways to drive it: a desktop app, a command-line tool, and an MCP server.

Universal macOS build is notarized · Windows & Linux installers included

~1.4 MBengine + CLI
3 OSesmacOS · Windows · Linux
0 trackersno telemetry, ever
Notarizedsigned macOS app

Why Ziplark

🪶

Small & fast

Size-optimized release build — LTO, stripped, panic=abort. The desktop app uses the OS webview, so there's no bundled Chromium.

🛡️

Safe by design

Every extraction path funnels through a single zip-slip guard. No entry can ever escape the destination folder — not from a crafted ZIP, RAR or tar.

⚙️

One engine, three ways

The GUI, CLI and MCP server are thin shells over one Rust core. Whatever the app does, the CLI does identically — and scripts can too.

📦

Every common format

ZIP, RAR (incl. RAR5 & encrypted), 7z, tar and the compressed-tar variants, single-stream gz/bz2/xz/zst/lz4 — and ISO 9660 disc images.

Format support

FormatExtractCreateEncryption
ZIP✓✓AES-256 (reads ZipCrypto)
7z✓✓AES-256
RAR / RAR5✓—reads encrypted
tar✓✓—
tar.gz / .bz2 / .xz / .zst / .lz4✓✓—
gz / bz2 / xz / zst / lz4 (single stream)✓✓—
ISO 9660 / Joliet (disc image)✓——

RAR creation is intentionally unsupported — the RAR compression format is proprietary. Extraction (including RAR5 and encrypted archives) works fully.

RAR, properly

RAR is the format downloads arrive in — split into parts, packed solid, sometimes one part short. Most free tools treat it as a checkbox. Here is what Ziplark actually does with it.

🧩

Multi-part sets are one archive

Open movie.part03.rar — or the old-style movie.r01 — and you get the whole set. Ziplark finds the first part itself, lists the parts it found, and reassembles files that span them. Both naming schemes, including the one whose first part is movie.rar.

🔎

A missing part is named

If the set is incomplete, Ziplark tells you which file it needs next — movie.part04.rar — instead of failing with a generic error. And it says so before writing anything, not half-way through.

🩹

Damaged archives give up what they can

"Extract what's readable" pulls every intact file out of a corrupted or incomplete archive, and lists exactly which entries failed and which came out incomplete. Verifying reports every bad file, so you know what to re-download.

🔐

Encrypted headers and .exe archives

An archive whose file names are encrypted opens with a password like any other. A self-extracting .exe is read as the archive hiding behind its stub.

🎯

Pick single files out

Tick the rows you want and extract just those — exact entries, not everything whose name happens to contain the same text. Same from the CLI: --include docs/notes.txt --exact.

🧷

Nothing is quietly lost

Permissions (an executable stays executable), timestamps, symlinks as symlinks, per-file compressed sizes, the archive comment, and solid / recovery-record flags all survive the trip out.

Ziplark uses the official UnRAR library for decompression — the same code WinRAR ships — and drives it directly, which is where the volume, salvage and metadata handling above comes from. Repairing an archive from its recovery record is WinRAR-only; Ziplark salvages instead.

Built for terminals and agents too

CLI — ziplark

List, extract, create and verify any archive. --json on every command for scripting.

ziplark list  movie.rar
ziplark extract photos.zip -o ./out
ziplark create backup.tar.zst ./src --level best
ziplark create secret.zip ./private --password hunter2
ziplark test  download.7z

MCP server — ziplark-mcp

Drive Ziplark from any LLM over the Model Context Protocol. Read tools are always on; writes are gated behind --allow-write.

{
  "mcpServers": {
    "ziplark": {
      "command": "ziplark-mcp",
      "args": ["--allow-write"]
    }
  }
}

Ziplark vs the alternatives

How Ziplark compares to popular archivers.

 ZiplarkWinRAR7-ZipKekaThe Unarchiver
PriceFree (MIT)PaidFreeFreeFree
Runs on macOS, Windows & Linux✓————
Extracts RAR & RAR5✓✓✓✓✓
Multi-part RAR sets (open any part)✓✓✓✓✓
Salvages a damaged set and lists what failed✓✓partial——
Names the missing part of an incomplete set✓✓———
Creates 7z (AES-256)✓✓✓✓—
Command line (--json)✓✓✓——
AI agent (MCP)✓————
Free & open source✓—✓✓—

Download

Version 0.1.0 · free forever · all releases & checksums

macOS

Universal · Apple Silicon & Intel · notarized

Download .dmg

or brew install --cask zhitongblog/tap/ziplark

CLI only: arm64 · x64

Windows

x64 · installer

Download .msi

.exe setup · CLI .zip

Linux

x64 · Debian/Ubuntu & AppImage

Download AppImage

.deb · CLI .tar.gz

Or build from source: cargo build --release. The desktop app builds with cargo tauri build.

FAQ

Is Ziplark free?

Yes — free and open source under MIT, with no ads and no telemetry.

Can Ziplark open RAR files?

Yes — including multi-part sets (part01.rar, or the old .r00/.r01 style: open any part and you get the whole set), self-extracting .exe archives, archives with encrypted file names, and damaged or incomplete ones, which it salvages file by file. Ziplark extracts RAR and RAR5 archives, including password-protected ones. It doesn't create RAR archives — that format is proprietary — but it reads them fully.

Does it work on macOS, Windows and Linux?

All three. macOS ships as a universal, notarized build; Windows as an .msi/.exe; Linux as .deb and AppImage.

Is it a good free alternative to WinRAR, 7-Zip or The Unarchiver?

Yes. Ziplark is cross-platform, free and tiny. It reads ZIP, RAR, 7z and tar and creates ZIP (AES-256), 7z and tar — plus it ships a CLI and an MCP server for scripting and automation. Guides: free WinRAR alternative, open RAR on Mac, and 7-Zip for Mac.

Does it support encrypted / password-protected archives?

Yes. It creates AES-256 encrypted ZIP and 7z archives, and reads encrypted RAR and 7z archives.

Can I use it from the command line or scripts?

Yes — the ziplark CLI does everything the app does, with --json on every command, and ziplark-mcp exposes it to any LLM over the Model Context Protocol.