ZstDelta
ZstDelta uses zstd dictionary compression to calculate a compressed delta between two inputs.
ZstDelta
The zstdelta Rust library provides diff and apply to calculate such
compressed deltas and restore content from deltas. You can get delta from
diff(a, b), then restore the content of b using apply(a, delta).
In Python, bindings.zstd provides access to the diff and apply functions:
>>> import bindings, hashlib
>>> a = b"".join(hashlib.sha256(str(i).encode()).digest() for i in range(1000))
>>> len(a)
32000
>>> b = a[:10000] + b'x' * 10000 + a[11000:]
>>> diff = bindings.zstd.diff(a, b)
>>> len(diff)
29
>>> bindings.zstd.apply(a, diff) == b
True
ZStore
The zstore Rust library provides an on-disk content store with internal
delta-chain management. It uses the above zstdelta library for delta
calculation and IndexedLog for on-disk storage. It is used by
MetaLog.