A modern, ultra-fast universal archive manager, compressor, and explorer. Built as an open-source, next-generation alternative to WinRAR, 7-Zip, and TAR with an instant
$\mathcal{O}(1)$ seekable Central Directory located at EOF, multi-codec streaming compression (Deflate & LZ4), per-entry CRC-32 integrity, password encryption, and digital signatures.
- ⚡ Key Features
- 📦 Installation & Releases
- 💻 Command Line Interface
- ⚙️ CLI Options Reference
- 📐 VPK2 Format Specification
- 🛠️ Workflow Recipes & Examples
- 🏎️ Performance & Benchmarks
- 📜 Changelog
- 📄 License
-
Universal Multi-Codec Compression: Compress files, directories, nested trees, codebases, binaries, and assets into
.vpackarchives with selectable compression codecs:-
Deflate (
-C deflate, default): High compression ratio and maximum cross-platform compatibility. -
LZ4 (
-C lz4): Ultra-fast pure-Rust streaming compression and real-time decompression.
-
Deflate (
-
$\mathcal{O}(1)$ Random-Access Seeks (VPK2 Central Directory): Index table is located at the End of File (EOF / EOCD). Extract or preview single files instantly without scanning or decompressing gigabytes of preceding data. - Hardware-Accelerated CRC-32: SSE4.2 / ARMv8 hardware-checksum computation and verification operating at over 6.2 GB/s.
-
Password Protection & Stream Encryption: Integrated SHA-256 authenticated stream cipher protection (
-p <password>). -
Native Windows Desktop GUI (
vpack-gui.exe): Modern WinRAR/7-Zip style graphical archive explorer built withwryandtao(native Evergreen WebView2 engine). Includes sortable file grids, drag-and-drop support, codec/level selection dialogs, interactive password protection & decryption, and hardware benchmark suite. - WinRAR-Style Interactive Console Explorer: Visual terminal table with file type icons, original/packed sizes, compression ratios, CRC-32 checksums, and modification timestamps.
-
Digital Signatures: Optional RFC 8032 Ed25519 publisher signature signing and tamper verification (
keygen/-s <key>). -
Built-in Benchmark Suite: Hardware-level CPU compression throughput (Deflate & LZ4), decompression speed, and checksum rate measurement (
vpack b). -
Local Deterministic Release Pipeline: 100% offline-verifiable release pipeline with VirusTotal multi-engine scanning (
scripts/pipeline.py), replacing third-party CI/CD services completely.
Pre-built standalone binary releases for Windows (x86_64) are available on the GitHub Releases page.
💡 For comprehensive installation and upgrade guides covering all deployment options, see INSTALL.md.
- Method 1: One-Click Installer (Recommended):
- Download
vpack-installer.exeandvpack-archiver-v2.0.1-windows-x86_64.vpackinto the same folder. - Double-click
vpack-installer.exe(or run.\vpack-installer.exe --silentfrom PowerShell). - It automatically installs to
%LOCALAPPDATA%\Programs\VPack, adds VPack to your userPATH, registers.vpackcontext menus, and creates Desktop/Start Menu shortcuts.
- Download
- Method 2: Portable ZIP:
- Download
vpack-archiver-v2.0.1-windows-x86_64.zip. - Extract with
Expand-Archive .\vpack-archiver-v2.0.1-windows-x86_64.zip -DestinationPath C:\Tools\VPack. - Optionally add
C:\Tools\VPackto your userPATH.
- Download
Updating an existing installation is seamless and preserves your configuration:
- Using the Installer:
- Download the latest
vpack-installer.exeandvpack-archiver-vX.Y.Z-windows-x86_64.vpackfrom Releases. - Run
.\vpack-installer.exe --silent(or double-click it). - The installer overwrites existing binaries in
%LOCALAPPDATA%\Programs\VPackwith the new version while preserving existing shortcuts and registry settings.
- Download the latest
- Using Existing VPack CLI (Dog-Fooding Update):
# Extract new package directly over existing install directory vpack x vpack-archiver-v2.0.1-windows-x86_64.vpack -o "$env:LOCALAPPDATA\Programs\VPack"
- Updating Portable ZIP: Extract the new zip file into your existing portable folder, replacing the files.
Ensure you have a modern Rust toolchain installed (1.70+):
git clone https://github.com/LeTrollologist/vpack-archiver.git
cd vpack-archiver
cargo build --release --workspaceThe optimized binaries are produced at:
target/release/vpack-archiver.exe(CLI suite)target/release/vpack-gui.exe(Desktop GUI)target/release/vpack-installer.exe(Setup installer)- Unix (source build):
target/release/vpack-archiver
| Command | Alias | Description |
|---|---|---|
vpack <archive.vpack> |
- | Open and view archive in WinRAR table view |
vpack a <archive> <files...> |
add |
Create or add files/folders to archive |
vpack x <archive> [-o <dest>] |
extract |
Extract all contents preserving full directory hierarchy |
vpack e <archive> <file> [-o <dest>] |
extract-file |
Extract a single file in |
vpack l <archive> |
list |
List contents in a rich formatted table |
vpack t <archive> |
test |
Test CRC-32 integrity & verify digital signatures |
vpack v <archive> <file> |
view |
Stream uncompressed file directly to stdout |
vpack b [-m <size_mb>] |
bench |
Run CPU compression & decompression benchmark |
vpack keygen [-o <prefix>] |
- | Generate Ed25519 publisher signing keypair |
vpack ui <archive> |
- | Render interactive console explorer |
# Standard compression (Deflate Level 6)
vpack a project.vpack src/ assets/ Cargo.toml README.md
# Ultra-fast compression with LZ4 codec
vpack a fast.vpack ./build -C lz4
# Maximum compression (Level 9) with password encryption and archive comment
vpack a backup.vpack ./data -c 9 -p "MySecretPass" -m "Daily Backup"
# Digitally sign archive with Ed25519 private key
vpack a release.vpack ./dist -c 6 -s publisher.priv# Quick inspect
vpack project.vpack
# Or via list subcommand
vpack l project.vpackOutput:
╔═════════════════════════════════════════════════════════════════════════════════════╗
║ 🗁 VPack Archiver (WinRAR Edition) - project.vpack ║
╠─────────────────────────────────────────────────────────────────────────────────────╣
║ [A]dd [X]Extract [E]xtract-Single [T]est [V]iew [I]nfo [B]enchmark [Q]uit ║
╠─────────────────────────────────────────────────────────────────────────────────────╣
║ Attr Name Original Packed Ratio CRC-32 Date Time ║
╠─────────────────────────────────────────────────────────────────────────────────────╣
║ 📁 src/ <DIR> - - - 2026-08-26║
║ 🖹 src/main.rs 11525 3412 70% A3F109C2 2026-08-26║
║ 📄 Cargo.toml 872 418 52% 480DFBC9 2026-08-26║
║ 📄 README.md 5923 2014 66% 7B12C091 2026-08-26║
╠─────────────────────────────────────────────────────────────────────────────────────╣
║ Total: 3 files, 1 folders | Orig: 0.02 MB | Packed: 0.01 MB | Ratio: 67.2% ║
║ Format: VPK2 (Central Directory at EOF) | Security: Standard VPack Archive ║
╚═════════════════════════════════════════════════════════════════════════════════════╝
# Extract full archive preserving directory structure
vpack x project.vpack -o ./extracted_folder
# Extract password-protected archive
vpack x backup.vpack -o ./restored -p "MySecretPass"
# Extract single file instantly in O(1) time
vpack e project.vpack src/main.rs -o ./main.rs# Verify CRC-32 checksum of every chunk and central directory integrity
vpack t project.vpack
# Test password-protected archive
vpack t backup.vpack -p "MySecretPass"# Pipe file from archive directly into grep, jq, or other tools
vpack v project.vpack Cargo.toml | grep version# Run multi-core benchmark against a 64 MB dataset
vpack b -m 64# Generate publisher.priv and publisher.pub
vpack keygen -o publisher| Flag | Long Flag | Description | Default |
|---|---|---|---|
<ARCHIVE> |
- | Destination .vpack file path |
Required |
<FILES...> |
- | Files and directories to compress | Required |
-c |
--level |
Compression level (0 = Store, 1..=9 = Deflate) |
6 |
-C |
--codec |
Compression codec: deflate (standard) or lz4 (ultra fast) |
deflate |
-p |
--password |
Encrypt payload with SHA-256 stream cipher | None |
-m |
--comment |
Embed metadata description/comment | None |
-s |
--sign |
Sign archive using Ed25519 private key (.priv) |
None |
| Flag | Long Flag | Description | Default |
|---|---|---|---|
<ARCHIVE> |
- | Target .vpack file path |
Required |
-o |
--dest |
Destination extraction directory | <stem>_extracted |
-p |
--password |
Password for encrypted archives | None |
| Flag | Long Flag | Description | Default |
|---|---|---|---|
<ARCHIVE> |
- | Target .vpack file path |
Required |
<FILE_INSIDE> |
- | Relative path of the file inside archive | Required |
-o |
--out |
Output destination path on disk | Basename |
-p |
--password |
Password for encrypted archives | None |
┌────────────────────────────────────────────────────────────┐
│ VPack Header (16 Bytes) │
│ Magic: 'VPK2' | Version (u16) | Flags (u16) | MetaLen (u32)│
├────────────────────────────────────────────────────────────┤
│ Archive Metadata (Bincode: Creator, Comment, Timestamps) │
├────────────────────────────────────────────────────────────┤
│ Sequential File Payload Chunks (Streaming Deflate/LZ4/Store)│
│ Chunk 1 (Compressed data) │
│ Chunk 2 (Compressed data) │
│ ... │
├────────────────────────────────────────────────────────────┤
│ Central Directory Table (Bincode Array of CentralDirEntry) │
│ - Relative Path (UTF-8) │
│ - Uncompressed Size & Compressed Size (u64) │
│ - Payload Offset (u64) │
│ - Mode, Flags, Method (u16), CRC-32 (u32) │
│ - Modified Timestamp (i64) & Directory Flag │
├────────────────────────────────────────────────────────────┤
│ Optional Ed25519 Signature Block (96 Bytes) │
│ - Public Key (32 Bytes) + Digital Signature (64 Bytes) │
├────────────────────────────────────────────────────────────┤
│ End of Central Directory Record (EOCD Footer - 28 Bytes) │
│ Magic: 'EOCD' | CD Offset (u64) | CD Len (u64) | Count(u32)│
└────────────────────────────────────────────────────────────┘
- Header (16 Bytes):
Magic(4 bytes):VPK2(0x56, 0x50, 0x4B, 0x32)Version(u16 LE): Format specification revision (2)Flags(u16 LE): Bitmask (0x0001Signed,0x0002Compressed,0x0004Encrypted)MetaLen(u32 LE): Length of serialized metadata headerReserved(u32 LE): Reserved padding
- Payload Chunks: Continuous sequential byte streams for each file, compressed via Deflate or stored verbatim.
- Central Directory (CD): Located at EOF offset specified in the footer. Contains full file manifest for instant random-access lookups.
- Signature Block (Optional, 96 Bytes): Contains 32-byte Ed25519 public key + 64-byte Ed25519 signature over archive payload.
- EOCD Footer (28 Bytes):
Magic(4 bytes):EOCD(0x45, 0x4F, 0x43, 0x44)CD Offset(u64 LE): Offset of Central Directory tableCD Length(u64 LE): Length of Central Directory tableEntry Count(u32 LE): Number of entries in Central DirectorySig Length(u32 LE): Length of signature block (0or96)
vpack a daily_backup.vpack \
/etc/nginx \
/var/log \
/opt/app/config.json \
-c 9 \
-p "EnterpriseSecret2026!" \
-m "Automated nightly backup"# 1. Generate publisher keypair
vpack keygen -o release-signer
# 2. Build and sign software archive
vpack a release-v1.1.0.vpack ./build/ -s release-signer.priv
# 3. Verify integrity and signature
vpack t release-v1.1.0.vpack# Instantly retrieve a single configuration without unpacking gigabytes of assets
vpack e assets.vpack config/deploy.env -o .envBenchmarked on modern x86_64 architecture (AMD / Intel multi-core):
| Operation | Throughput | Notes |
|---|---|---|
| LZ4 Compression | ~350 - 600 MB/s | Ultra-fast pure-Rust frame compression |
| Deflate Compression (Level 6) | ~75 - 120 MB/s | Multi-stream balanced |
| Deflate Decompression | ~450 - 650 MB/s | Zero-copy buffered decoder |
| Hardware CRC-32 Checksum | > 6,200 MB/s | SSE4.2 / ARM CRC32 instructions |
| < 0.05 ms | End-of-Central-Directory seek |
See CHANGELOG.md for full release history and version migration notes.
Licensed under either of:
- Apache License, Version 2.0 (LICENSE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT License (LICENSE or http://opensource.org/licenses/MIT)
at your option.