jdieter / zchunk


zchunk is a compressed file format that splits the file into independent chunks. This allows you to only download the differences when downloading a new version of the file, and also makes zchunk files efficient over rsync. zchunk files are protected with strong checksums to verify that the file you downloaded is in fact the file you wanted.

Please note that, while the code is pretty reliable, the zchunk file format is still in flux and the API is still not fixed. Please do not use zchunk for any mission-critical systems yet.

Installation Instructions

To install the zchunk utilites on Fedora, enable the COPR repository and run:

dnf install zchunk

To decompress a zchunk file, simply run:

unzck <filename>

To compress a new zchunk file, run:

zck <filename> <string to split chunks on> <optional dictionary>

To download a zchunk file, run:

zck <source> <url of target>

To read a zchunk header, run:

zck_read_header <file>

To create a Fedora repository with zchunk metadata, first install createrepo_c:

dnf install createrepo_c

Make sure you have 0.11.0 or greater. Then run zchunk-enabled createrepo_c:

createrepo_c --zck --zck-primary-dict=<optional primary dictionary> --zck-filelists-dict=<optional filelists dictionary> \ --zck-other-dict=<optional other dictionary> ./

Dictionaries that should work well for Fedora are available at https://www.jdieter.net/downloads/zchunk-dicts.

Active Releases

The following unofficial repositories are provided as-is by owner of this project. Contact the owner directly for bugs or issues (IE: not bugzilla).

Release Architectures Repo Download
Epel for CentOS 7 ppc64le (0)*, x86_64 (0)* Epel 7 (2 downloads)
Fedora 26 i386 (0)*, ppc64le (0)*, x86_64 (0)* Fedora 26 (1 downloads)
Fedora 27 i386 (0)*, ppc64le (0)*, x86_64 (11)* Fedora 27 (4 downloads)
Fedora 28 i386 (0)*, ppc64le (0)*, x86_64 (0)* Fedora 28 (1 downloads)
Fedora rawhide i386 (0)*, ppc64le (0)*, x86_64 (0)* Fedora rawhide (1 downloads)

* Total number of packages downloaded in the last seven days.