Archive Vault

PackSafe

Split a big archive into volumes, then prove later which piece went bad.

Free right now — no account, no card

Get PackSafe free Windows & Mac · one file, nothing to install

Preview

1 interface design, then a screenshot of it running. Drag, scroll or use the arrows.

Interface design PackSafe, 1 of 1
Screenshot PackSafe running on Windows today

Free while we’re in preview

Get PackSafe

Split a big archive into volumes, then prove later which piece went bad.

The Mac button is for Apple Silicon. On an older Intel Mac, get this one instead.

One file, both ways. Double-click it for the window. Run the same file from a command prompt with arguments and it behaves as the command-line tool, because the engine is inside it. Nothing else to download and nothing to keep beside it.

Early preview. The window has been built and run, but not yet on a real Windows PC or Mac, so expect rough edges. The engine underneath it is fully tested.

  • One file — no installer
  • Runs on your machine, offline
  • Source code published below

Free while in preview. It isn’t signed yet, so Windows or macOS will ask you to confirm the first time you open it. At launch, PackSafe is included in every plan along with the rest of the range.

When the pieces come back together

Twelve files arrive from four people over three weeks, off different USB sticks and out of different downloads folders. Somebody asks whether the set is complete. Guessing isn’t an answer.

PackSafe cuts one tar+gzip stream into fixed-size volumes and writes a manifest holding the SHA-256 of every volume and of the whole pre-split stream. verify then reports per volume: OK, MISSING, SIZE MISMATCH, CHECKSUM MISMATCH or UNREADABLE, and finishes with a verdict on whether a restore can safely go ahead.

That whole-stream hash catches what per-volume checks can’t, like volumes reassembled in the wrong order or a set built from two different pack runs. restore verifies first and refuses outright if anything fails, then checks every tar entry for absolute paths and .. elements before writing a byte.

pack and restore are previews until --apply.

Two things it can’t do

The volumes are not encrypted, and the manifest lists every archived path and size in clear text. If the contents are sensitive, make a VaultZip vault and pack that.

There’s no parity data either. PackSafe names volume 7 as the bad one; re-fetching volume 7 is your problem.

Reading on the job itself

Advanced & technical details Command-line builds, source code, checksums and a recorded session — for developers and IT teams

A working prototype of split-volume archiving: pack a tree into fixed-size volumes, each independently checksummed, with a manifest that proves the set is complete before anyone attempts a restore. Verified: a single flipped byte was pinned to the exact volume, restore refused and wrote nothing, and the good copy then restored byte-identical — plus a whole-stream hash that catches reordering the per-volume checks structurally cannot. Volumes are not encrypted; VaultZip does that.

Recorded session

Recorded terminal session showing PackSafe running
A real recorded session — PackSafe’s actual output, captured by running the shipped binary.

Naming status

Working name only — brand verdict **CAUTION** (Medium). Collision: PackSafe. Use only after formal clearance; coined alternative preferable.

What it draws on

Existing paid software whose best ideas shaped this program: WinRAR, WinZip, Folder Lock, O&O SafeErase.

Command line

There is nothing extra to install. The program you download is the command-line tool as well: give it arguments instead of double-clicking it and it runs as one, with its output on your terminal. The standalone builds below are the same engine on its own, for machines where you would rather not ship a window at all.

PackSafe — split volumes with a verifiable manifest

Usage:
  packsafe pack <path> [<path> ...] --out NAME --volume-size SIZE [--apply] [--json]
  packsafe verify  NAME.manifest.json [--json]
  packsafe restore NAME.manifest.json --out DIR [--apply] [--json]
  packsafe list    NAME.manifest.json [--json]

  --volume-size accepts human sizes: 500KB, 1MB, 10MiB, 2G, or raw bytes.
                KB/MB/GB are powers of 1000, KiB/MiB/GiB powers of 1024.
  --apply       actually write. "pack" and "restore" are a DRY RUN without it.
  --json        machine-readable report on stdout.

Volumes are not encrypted and carry no parity data: a bad volume must be
re-fetched, not repaired. Exit 0 ok, 1 usage/IO error, 2 integrity failure.

Recorded from the shipped binary, not written by hand.

Source

Every file the program is built from:

console.go · console_test.go · guided.go · main.go

SHA-256 checksums · build instructions & scope notes · full build plan