cavs — packaging CLI
The cavs binary turns files and game builds into deduplicated, verifiable
.cavs files, inspects and verifies them, reconstructs them byte-for-byte, and
manages the global content-addressable store.
How it works
cavs pack --raw splits inputs into FastCDC chunks (~64 KiB), deduplicates
them, compresses each with zstd, and writes a .cavs container with a chunk
table, a Merkle root over the content, per-file SHA-256, and an optional
Ed25519 signature. Reconstruction (unpack) verifies every chunk and produces
the original files exactly. The video mode (without --raw) segments inputs
with ffmpeg first, then packages the segments.
Commands
# Package (game assets / arbitrary files)
# Package video (needs ffmpeg on PATH)
# Inspect / verify / reconstruct
# Signing keys (Ed25519)
# Global store (dedup at rest across versions/titles)
Run cavs --help or cavs <command> --help for all options.
Requirements
Nothing extra for --raw (game asset) mode. ffmpeg/ffplay on PATH only
for the video mode.