• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

autotools/H20-Sep-2010-5,1214,248

doc/H20-Sep-2010-569498

librcksum/H20-Sep-2010-2,0441,315

libzsync/H03-May-2022-2,3931,554

zlib/H20-Sep-2010-8,6975,352

COPYINGH A D16-Sep-201010.4 KiB211160

INSTALLH A D16-Sep-20109.1 KiB229175

Makefile.amH A D20-Sep-20101.1 KiB3622

Makefile.inH A D20-Sep-201031.8 KiB965863

NEWSH A D19-Sep-20105.2 KiB154124

READMEH A D19-Sep-20106.1 KiB144107

aclocal.m4H A D20-Sep-201036.4 KiB1,023918

base64.cH A D16-Sep-20102.5 KiB9049

check-zsyncmakeH A D20-Sep-2010328 104

client.cH A D19-Sep-201022.2 KiB696467

config.h.inH A D20-Sep-20103.1 KiB11980

configureH A D20-Sep-2010190.3 KiB6,7275,598

configure.acH A D19-Sep-20101.9 KiB7153

format_string.hH A D16-Sep-2010918 3819

getaddrinfo.cH A D16-Sep-201013.6 KiB592399

getaddrinfo.hH A D16-Sep-20105 KiB224150

http.cH A D19-Sep-201039.2 KiB1,175753

http.hH A D16-Sep-20101.2 KiB3811

make.cH A D16-Sep-201029.7 KiB904627

makegz.cH A D16-Sep-20105.1 KiB174103

makegz.hH A D16-Sep-2010686 171

progress.cH A D16-Sep-20103 KiB9856

progress.hH A D16-Sep-2010952 299

url.cH A D16-Sep-20104.8 KiB16693

url.hH A D16-Sep-20101.1 KiB284

zsglobal.hH A D16-Sep-2010902 3111

README

1zsync 0.6.2
2===========
3
4zsync is a file transfer program. It allows you to download a file from a
5remote web server, where you have a copy of an older version of the file on
6your computer already. zsync downloads only the new parts of the file. It uses
7the same algorithm as rsync.
8
9zsync does not require any special server software or a shell account on the
10remote system (rsync, in comparison, requires that you have an rsh or ssh
11account, or that the remote system runs rsyncd). Instead, it uses a control
12file - a .zsync file - that describes the file to be downloaded and enables
13zsync to work out which blocks it needs. This file can be created by the admin
14of the web server hosting the download, and placed alongside the file to
15download - it is generated once, then any downloaders with zsync can use it.
16Alternatively, anyone can download the file, make a .zsync and provide it to
17other users (this is what I am doing for the moment).
18
19The zsync web site is at http://zsync.moria.org.uk/ . There are likely to be
20frequent releases, so check back often.
21
22Installation
23------------
24
25See the file INSTALL for instructions on compiling and (optionally) installing
26zsync.
27
28As zsync is still at a very early stage, you may prefer not to install it, and
29to run the program where you compile it. It will work fine that way - it has no
30data files or libraries. The man(1) program on some systems will let you read
31the man pages without installing them, e.g. man -l doc/zsync.1 .
32
33zsync is free software. There is no implied support, no implied fitness for
34purpose, no warranty. You use it at your own risk.
35
36Use
37---
38
39In its simplest form, as an end-user:
40
41zsync http://some.example.com/downloads/my-big-download.tar.zsync
42
43Someone has to make a .zsync file for the download before you can use zsync. As
44zsync has not been around long, there won't be many such downloads around :-).
45And you have to have an older copy of the file around, otherwise there is
46little point in using zsync - zsync normally looks in the current directory for
47a file of the same name as the one being downloaded (note: if the download is a
48.gz file, the local file should be uncompressed - use gzip -d to decompress it
49first). If the local file is not in the current directory or has a different
50name, you can specify it with -i, e.g.:
51
52zsync -i /var/lib/apt/lists/ftp.uk.debian.org_debian_dists_sarge_main_binary-i386_Packages http://zsync.moria.org.uk/s/sarge/Packages.zsync
53
54Offering zsync downloads
55------------------------
56
57Simple example:
58Suppose you have http://example.com/dl/some-image-0.2.iso ; which is in
59/var/www/downloads/ on your server.
60
61cd /var/www/downloads/
62zsyncmake -u 'http://example.com/dl/some-image-0.2.iso' some-image-0.2.iso
63
64This creates some-image-0.2.iso.zsync in the same directory, and specifies the
65URL from which users can retrieve the full file. (Note that zsync requires both
66the public URL for the full download, and a local copy of the same file. Users
67will still need access to the full downloads - zsync merely allows then to save
68time by only downloading parts of the file.)
69
70A user with v0.1 of the same file can now use zsync to download only the new
71bits.
72
73zsync -i some-image-0.1.iso http://example.com/dl/some-image-0.2.iso.zsync
74
75Compressed example:
76Support you have http://example.com/downloads/big-0.2.tar.gz ; which is
77in /var/www/downloads/ on your server.
78
79cd /var/www/downloads/
80zsyncmake -u 'http://example.com/downloads/big-0.2.tar.gz' big-0.2.tar.gz
81
82This creates big-0.2.tar.zsync in the same directory, and specifies the URL
83from which users can see the file.
84
85A user with v0.1 of the same file can now use zsync to download only the new
86bits:
87
88zsync -i <(zcat big-0.1.tar.gz) http://example.com/downloads/big-0.2.tar.zsync
89
90Feedback, Support
91-----------------
92
93Mail zsync-users@lists.sourceforge.net if you have questions about zsync. And
94join the mailing list if you are using it a lot or are interested in the
95ongoing development.
96
97Copyright, Author, Acknowledgements
98-----------------------------------
99
100zsync is based on the rsync algorithm, by Andrew Tridgell. It also incorporates
101a number of optimisations, based on ideas in academic papers by Utku Irmak,
102Svilen Mihaylov and Torsten Suel (primarily "Improved Single-Round Protocols
103for Remote File Synchronization", Sept 2004).
104
105zsync uses a large part of zlib - this code, in the zlib subdirectory, is
106copyright 1995-2003 Jean-loup Gailly and Mark Adler, see zlib/README for
107details. This code contains local changes by me that are not compatible with
108and not available in standard zlib; see zlib/README.zsync for an explanation.
109
110zsync includes an implementation of getaddrinfo by Motoyuki Kasahara. See
111getaddrinfo.c for the license, it's a BSD-style license; but normally zsync
112compiles against the getaddrinfo() in the system libc, so this code is not
113normally used.
114
115zsync also includes checksum code taken from OpenBSD. The MD4 code is public
116domain, by Colin Plumb and Todd C. Miller. The SHA1 code is also public
117domain, by Steve Reid. This code is in the libhash/ subdirectory, see the
118individual files for their non-copyright notices.
119
120The rest of the code (that is, everything not in the zlib and libhash
121subdirectories) is
122Copyright (C) 2004,2005,2007,2009 Colin Phipps <cph@moria.org.uk>.
123zsync is made available under the (clarified) Artistic License - see the file
124COPYING for details.
125
126Thanks also to:
127
128* Dennis Schridde, for contributing patches to improve portability.
129* Timothy Lee, for finding bugs and supplying patches.
130* Richard Kiss, for supplying a patch for MacOS X compilation.
131
132I must thank the developers above, whose code I have used. Also, I would like
133to thank the Free Software Foundation and its contributors, for gcc, gdb and
134emacs, the essential development tools. Also I would thank Sourceforge for
135providing the hosting facilities for the downloads and mailing list, and the
136compile farm for testing portability.
137
138Also, thanks to Érsek László, James Montgomerie, James Antill,
139saul@alien-science.org, Kent Mein, Marc Lehmann, Robert Lemmen, Mark Adler,
140Ricardo Correia, Karl Kalleberg, Michael Stone, Richard Lucassen, Duncan
141Mac-Vicar, Jari Aalto, Marcin Mirosław, Jan Varho and Loïc Minier for useful
142feedback and bug reports for previous versions.
143
144