.TH ZUPT 1 "2026-03-29" "Zupt 2.0.0" "User Commands" .SH NAME zupt \- backup compression with encryption and post-quantum key encapsulation .SH SYNOPSIS .B zupt compress .RI [ OPTIONS ] .I output.zupt files/dirs... .br .B zupt extract .RI [ OPTIONS ] .I archive.zupt .br .B zupt list .RI [ OPTIONS ] .I archive.zupt .br .B zupt test .RI [ OPTIONS ] .I archive.zupt .br .B zupt bench .RI [ --compare ] .I files/dirs... .br .B zupt keygen .RI [ -o .IR file ] .RI [ --pub ] .RI [ -k .IR privkey ] .br .B zupt version .br .B zupt help .SH DESCRIPTION .B zupt compresses and encrypts backup archives using the VaptVupt codec (LZ77 + tANS entropy coding with AVX2 SIMD decode), AES-256-CTR authenticated encryption (HMAC-SHA256), and optional ML-KEM-768 + X25519 post-quantum hybrid key encapsulation. .PP Pure C11, zero external dependencies, ~12,000 lines of code. .SH COMPRESS OPTIONS .TP .BI \-l " LEVEL" Compression level 1\-9 (default: 7). Levels 1\-3 use VaptVupt Ultra-Fast mode, 4\-7 use Balanced, 8\-9 use Extreme. .TP .BI \-t " N" Thread count. 0=auto-detect, 1=single-threaded, 2\-64=explicit. .TP .BI \-p " PASSWORD" Encrypt with AES-256-CTR + HMAC-SHA256. Password prompted if omitted. .TP .BI \-\-pq " KEYFILE" Post-quantum hybrid encryption using ML-KEM-768 + X25519. .TP .B \-s Store without compression. .TP .B \-f Use fast LZ codec (Zupt-LZ, 64KB window). .TP .B \-\-vv Use VaptVupt codec (default since v2.0). .TP .B \-\-solid Solid mode: concatenate all files before compression for better ratio. .TP .B \-v Verbose output. .SH EXTRACT OPTIONS .TP .BI \-o " DIR" Output directory. .TP .BI \-p " PASSWORD" Decryption password. .TP .BI \-\-pq " KEYFILE" Post-quantum decryption with private key. .TP .BI \-t " N" Thread count for parallel decompression. .SH CODECS .TP .B VaptVupt (0x0010) Default. LZ77 + tANS entropy + AVX2 SIMD. Three modes: Ultra-Fast, Balanced, Extreme. .TP .B Zupt-LZHP (0x000A) LZ77 + Huffman + byte prediction. Previous default (v1.x). .TP .B Zupt-LZ (0x0008) Fast LZ77, 64KB window. Selected with \-f. .TP .B Store (0x0000) No compression. Selected with \-s. .SH ENCRYPTION Password mode uses PBKDF2-SHA256 (600,000 iterations) to derive AES-256 encryption and HMAC-SHA256 authentication keys. Per-block nonce derived from base_nonce XOR block_sequence. .PP Post-quantum mode (\-\-pq) uses ML-KEM-768 + X25519 hybrid KEM per NIST FIPS 203. Secure if either algorithm is secure. .SH EXAMPLES .nf zupt compress backup.zupt ~/Documents/ zupt compress \-l 9 \-p secret secure.zupt data/ zupt extract \-o ~/restored/ backup.zupt zupt bench \-\-compare zupt keygen \-o mykey.key zupt compress \-\-pq pub.key backup.zupt ~/Documents/ .fi .SH FILES .TP .I *.zupt Zupt archive format (v1.4). .TP .I *.zupt-key ML-KEM-768 + X25519 keypair file. .SH EXIT STATUS 0 on success, 1 on error. .SH AUTHOR Cristian Cezar Moisés .SH LICENSE MIT License. VaptVupt codec files are dual-licensed MIT + Apache-2.0. .SH SEE ALSO .BR gzip (1), .BR zstd (1), .BR lz4 (1)