Metalink


Metalink is an extensible metadata file format that describes one or more computer files available for download. It specifies files appropriate for the user's language and operating system; facilitates file verification and recovery from data corruption; and lists alternate download sources.
The metadata is encoded in HTTP header fields and/or in an XML file with extension .meta4 or .metalink. The duplicate download locations provide reliability in case one method fails. Some clients also achieve faster download speeds by allowing different chunks/segments of each file to be downloaded from multiple resources at the same time.
Metalink supports listing multiple partial and full file hashes along with PGP signatures. Most clients only support verifying MD5, SHA-1, and SHA-256, however. Besides FTP and HTTP mirror locations and rsync, it also supports listing the P2P methods BitTorrent,, magnet link or any other that uses a URI.

Development History

Metalink 3.0 was publicly released in 2005. It was designed to aid in downloading Linux ISO images and other large files on release day, when servers would be overloaded and to repair large downloads by replacing only the parts with errors instead of fully re-downloading them. It was initially adopted by download managers, and was used by open source projects such as OpenOffice.org and Linux distributions. A community developed around it, more download programs supported it and it saw commercial adoption. In 2008, the community took their work to the Internet Engineering Task Force which resulted in Metalink 4.0 in 2010, described in a Standards Track RFC. Metalink 3.0 and Metalink 4.0 are incompatible because they have a slightly different format. In 2011, another Standards Track RFC described Metalink in HTTP header fields.

Client programs

ToolDebian-basedFedora-basedArch-basedBSD-basedWindows
aria2
cURL; built without Metalink support; built without Metalink support
Wget; unrecognized option; unrecognized option
DownThemAllnot in reponot in reponot in reponot in repo
FlashGotnot in reponot in reponot in reponot in repo
Free Download Managernot in reponot in reponot in reponot in repo
GetRightnot in reponot in reponot in reponot in repo
jDownloadernot in reponot in reponot in reponot in repo
KGet221MB367MB
Phexnot in reponot in reponot in reponot in repo
SmartFTPnot in reponot in reponot in reponot in repo
easyMulenot in reponot in reponot in reponot in repo
ZYppnot in reponot in reponot in reponot in repo

Client Libraries

has integrated Metalink into package management with urpmi and aria2.
Fedora has integrated Metalink into package management with yum. openSUSE has integrated Metalink into package management with ZYpp and aria2.
Wubi, the Windows-based Ubuntu installer, uses to download Ubuntu ISO images and takes advantage of Metalink's features of higher availability and increased reliability. If there are errors in the download, they are repaired, instead of restarting the large download.
Appupdater for Windows "is similar to apt-get or yum on Linux. It automates the process of installing and maintaining up to date versions of programs."
Currently, OpenOffice.org uses Metalinks to distribute their free office suite. cURL offers Metalinks of their downloads. UniProt Consortium also provides a Metalink for their large protein database. Dofus, a Flash MMORPG uses Metalinks for downloads and so does SageMath, the open-source mathematical software.
The software hosting and collaboration platform Origo generates Metalinks for all hosted releases.
The following Linux distributions use Metalink for ISO image distribution: Adios, Bayanihan Linux, BeleniX, Berry Linux, BLAG Linux and GNU, Bluewhite64 Linux, Damn Small Linux, Fedora, GoboLinux, Granular Linux, KateOS, Linux Mint, openSUSE, Pardus Linux, PCLinuxOS, PuppyLinux, Sabayon Linux, StartCom Enterprise Linux, SUSE Linux, Ubuntu.
The following FreeBSD based distributions use Metalink for ISO image distribution: DesktopBSD, MidnightBSD, and TrueOS.
File based search engine provides search for Metalinks.

Metalink client feature comparison

A guide to which clients support which Metalink features:
ClientwgetcURLDownThemAllFree Download ManagerGetRightKGetPhexSmartFTP
LicensingFree Software Free Software Free Software Free Software Proprietary / $29.95 for Standard, $49.95 for ProFree Software Free Software Proprietary / Free 30 day Evaluation
Multiple Editions/$39.99 Professional
InterfaceCLICLIGUIGUIGUIGUIGUIGUI
Metalink 4.0
Runs on Linux
Runs on Windows
Runs on Mac OS X
Resume Downloads?
Segmented Downloads??
Multiple File support??
"location"??
OS??
Language??
HTTP with Transparent Negotiation??
Metalink/HTTP??
HTTP
FTP
BitTorrent?-
magnet??
MD5 Hashes?-
SHA-1 Hashes?-
SHA-256 Hashes?-
Piece Hashes??
PGP Signatures??

No clients support rsync at this time.

Metalink generation

Metalink is formatted as XML so it can be either hand-crafted or created with an XML library, useful for automation. These tools are specifically for Metalink.
Metalink 4.0 files have the extension .meta4 and are XML text files. They are served with the application/metalink4+xml Internet media type.



2009-05-15T12:23:23Z

14471447
Example
1.0
en

A description of the example file for download.

3d6fece8033d146d8611eab4f032df738c8c1283620fd02a1f2bfec6e27d590d
ftp://ftp.example.com/example.ext
http://example.com/example.ext
http://example.com/example.ext.torrent


Example Metalink/HTTP header fields

Metalink in HTTP header fields makes use of existing standard HTTP header fields such as ETags, Link header fields, and Instance Digests.

Etag: "thvDyvhfIqlvFe+A9MYgxAfm1q5="
Link: ; rel=duplicate
Link: ; rel=duplicate
Link: ; rel=describedby; type="application/x-bittorrent"
Link: ; rel=describedby; type="application/metalink4+xml"
Link: ; rel=describedby; type="application/pgp-signature"
Digest: SHA-256=MWVkMWQxYTRiMzk5MDQ0MzI3NGU5NDEyZTk5OWY1ZGFmNzgyZTJlODYzYjRjYzFhOTlmNTQwYzI2M2QwM2U2MQ

Example Metalink 3.0 .metalink file

Metalink 3.0 files have the extension .metalink and are XML text files.






example-md5-hash
example-sha1-hash



ftp://ftp.example.com/example.ext
ftp://ftp.example.net/example.ext
http://example.com/example.ext
http://example.net/example.ext
http://example.org/example.ext.torrent