Skip to main content

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.