Skip to content

v2.1.5

Choose a tag to compare

@cristiancmoises cristiancmoises released this 12 Apr 18:37
· 129 commits to master since this release

Zupt v2.1.5

Block-level deduplication (--dedup), XXH64 fingerprint index, DEDUP_REF block type, 81 tests

Release Summary

Zupt v2.1.5 — Block-Level Deduplication: COMPLETE
All quality gates passed.

Test Results

ZUPT v2.1.5 — FULL TEST SUITE

Core Tests (70)

  • Regression: 22 passed
  • Vectors: 13 passed
  • VaptVupt: 11 passed
  • Threaded: 14 passed
  • PQ: 10 passed

Disk Tests (8): 8 passed
Dedup Tests (6): 6 passed

TOTAL: 84 passed, 0 failed

Deduplication Results

  • 3 identical 64K files + 1 unique → 60% dedup ratio (2.5× smaller)
  • 4 identical 256K blocks → 75% dedup ratio
  • From-scratch tarball (2 duplicates) → 67% dedup, 3:1 ratio

Usage

# File compression with dedup
zupt compress --dedup backup.zupt ~/data/

# Disk backup with dedup
zupt disk backup --dedup backup.zupt /dev/sda1

# Dedup + encryption
zupt compress --dedup --pq pub.key backup.zupt ~/data/

# Extract (dedup resolved automatically)
zupt extract backup.zupt

Implementation

  • src/zupt_dedup.c (165 lines)
  • XXH64 fingerprinting + size verification
  • ZUPT_BLOCK_DEDUP_REF (8-byte references)
  • Hash table (2M entry cap)
  • Transparent dedup in compress, disk backup, and all extract paths

Codec × Dedup × Encryption Matrix

All combinations pass:

  • VaptVupt (--vv): plain, password, PQ, PQ+password
  • Zupt-LZHP (--lzhp): all variants
  • Zupt-LZ (-f): all variants
  • Store (-s): all variants
  • AUTO: all variants
  • Levels 1–9: all pass
  • Disk dedup: default, VV, LZHP, Store, PQ combos

Archive sizes (7 files, 5 identical 128K):
--dedup = 328,254 bytes vs normal = 852,525 bytes (61% saved)