Jigdo is a tool used to download large files. Currently, I am only aware of one project that takes advantage of the Jigdo utility, and that is Debian.
Jigdo comes in two versions, the jido-file utility and the jigdo-lite script. The jigdo-file utility is used to split up large files. The jigdo-lite script is used to reassemble them.
So, if you create a large file, for instance an image of a CD. You process it with the jigdo-file utility. This creates a .jigdo file that is then made public (usually via a website). The .jigdo file contains instructions for the jigdo-lite script for reassembling the original large file.
After that, a client will have to download the jigdo-lite script and run it, supplying the location of the .jigdo file as a command-line argument (usually a URL). The jigdo-lite script then downloads the .jigdo file and uses it to assemble the large file on the client computer.
This idea is nothing new. There have been other utilities for doing this for a long time. However, Jigdo has a few features that separate it from the rest.
- The large file does not need to be stored on a server. Instead, the many small files used to assemble the large file can be made available across one or many servers. Jigdo will download them as needed when assembling the large file.
- Jigdo does not care about file formats. You can use it for CD images, zip files, whatever.
- The reassembled version of the file is a bit-exact copy. I'm not sure what that means, but it sure sounds cool.
- jigdo-lite can be instructed as to where to download all of it's files from. So it can be sure to use the closest mirror available, thus probably getting the fastest download times available.
- Uses commonly-available protocols (HTTP/FTP).
- Lost connection while downloading? Connected to a slow server? No problem! Jigdo lets you resume broken downloads!
- Just spent 4 hours downloading version 1.3.2 of a CD, only to find out the next day they released 1.3.3? No problem! Jigdo lets you upgrade CD images, downloading only the needed parts.
- With Jigdo, you can release altered versions of a file by simply making the altered or added files public. The rest of the files are downloaded form their original sources.
I've only used Jigdo for downloading images of Debian CDs, but it worked like a dream. Took about 30-45 minutes per CD to download and assemble everything (Over a University LAN, so probably around T1 speed). When it was done, I had perfect ISO images to burn to a CD.
The benefits of downloading the components of an image, and then assembling them are obvious. One of the downsides to this technique is that it is a bit slower, since it has to negotiate a connection for each individual component, and then go through the laborious process of assembly.
But, I'm not complaining.
Jigdo homepage: http://home.in.tum.de/~atterer/jigdo