Metalink
From Wikipedia, the free encyclopedia
Metalink | |
File extension: | .metalink |
---|---|
MIME type: | application/metalink+xml |
Type of format: | File distribution |
Extended from: | XML |
- NOTE: Metalink is unrelated to Oracle Corporation's support website.
Metalink is an open standard/framework for programs that download, including download managers, BitTorrent clients, Web browsers, FTP clients, and P2P programs. For increased convenience, it stores the multiple download locations for a file (FTP/HTTP/P2P) in a single metafile with the extension .metalink. This provides reliability in case one method fails. For fast Internet connections, it also speeds up the process by allowing chunks/segments of each file to be downloaded from multiple resources at the same time (segmented downloading).
Other features include automatic checksum verification of finished downloads, listing multiple files to be added to a download queue, and automatic OS/language selection. Metalinks are also backwards compatible with regular hyperlinks by using the format http://URL#!metalink3!http://URLtoMetalink.
Metalink is extensible, and supports listing multiple partial and full file hashes/checksums along with PGP signatures. Most clients only support verifying MD5 & SHA-1, however. Besides FTP and HTTP mirror locations and rsync, it also supports listing the P2P methods BitTorrent, ed2k, and magnet link.
Contents |
[edit] Client programs
- aria2 (GPL) is a Unix/Windows command line "high speed download utility" that supports BitTorrent and Metalink (HTTP/FTP/BitTorrent).
- DownThemAll (GPL), a Firefox extension and download manager that has basic EXPERIMENTAL Metalink support in SVN.
- FlashGot (GPL), a Firefox extension for integrating with many Download Managers, supports Metalink.
- Free Download Manager a Windows Download Manager, supports Metalink (HTTP/FTP) in a BETA version.
- GetRight 6, a Windows Download Manager, supports Metalink (HTTP/FTP/BitTorrent).
- KGet, the native download manager that is part of KDE4, has added initial support to SVN.
- Orbit Downloader, a Windows Download Manager, supports Metalink (HTTP/FTP).
- Phex, a Mac/Unix/Windows Gnutella client, supports exporting a library to Metalink for sharing between users.
- SmartFTP, a Windows GUI FTP client, supports Metalink for adding files to an FTP transfer queue and checksum verification (does not supported segmented downloads).
- Speed Download, a Mac Download Manager, supports Metalink (HTTP/FTP) as of version 4.1.0.
- wxDownload Fast (GPL) is a Mac/Unix/Windows download manager that supports Metalink (HTTP/FTP).
See Comparison of download managers or below for details on which of them support Metalink and have other features.
[edit] Metalink client feature comparison
A guide to which client support which Metalink features:
aria2 | DownThemAll (ALPHA) | Free Download Manager (BETA) | GetRight | KGet (ALPHA) |
Orbit Downloader | SmartFTP | Speed Download | wxDownload Fast | |
---|---|---|---|---|---|---|---|---|---|
License | Free Software (GNU General Public License) | Free Software (GNU General Public License) | Proprietary / Free | Proprietary / $29.95 for Standard, $49.95 for Pro | Free Software (GNU General Public License) | Proprietary / Free | Proprietary / Free for personal, $36.95 commercial | Proprietary / $25 | Free Software (GNU General Public License) |
Interface | CLI | GUI | GUI | GUI | GUI | GUI | GUI | GUI | GUI |
Runs on Linux | Yes | Yes | No | No | Yes | No | No | No | Yes |
Runs on Windows | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes |
Runs on Mac OS X | Yes | Yes | No | No | No | No | No | Yes | Yes |
Resume Downloads | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Segmented Downloads | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes |
Multiple File support | Yes | ? | No | Yes | ? | Yes | Yes | Yes | Yes |
"location" | Yes | ? | No | No | ? | ? | No | No | No |
OS | Yes | ? | No | No | ? | No | No | Yes | No |
Language | Yes | ? | No | No | ? | Yes | No | Yes | No |
HTTP | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes |
FTP | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
BitTorrent | Yes | No | Yes | Yes | Yes | No | No | No | No |
rsync | No | No | No | No | No | No | No | No | No |
ed2k | No | No | No | No | No | No | No | No | No |
magnet | No | No | No | No | No | Yes | No | No | No |
PGP Signature | No | No | No | No | ? | No | No | No | No |
MD5 Checksums | Yes | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
SHA-1 Checksums | Yes | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Piece Checksums | Yes | ? | No | No | ? | No | No | No | No |
#!metalink3! Links | No | Yes | No | Yes | ? | No | No | Yes | Yes |
[edit] In use
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.
The following distributions use Metalink for ISO distribution: openSUSE, BLAG Linux and GNU, StartCom Enterprise Linux, Arch Linux, DesktopBSD, PC-BSD, Berry Linux, SUSE Linux, Ubuntu Christian Edition, PuppyLinux, redWall Firewall.
[edit] Metalink generation
Metalink is XML so they can be hand crafted or XML tools can be used for automation. These tools are specifically for Metalink.
- Bouncer is "database driven mirror management app that has three main components - a bounce script, a sentry script to check mirrors and files for integrity and a set of web-based administration tools." Bouncer supports Metalink via a patch that has not yet been integrated upstream.
- Metalink Editor (GPL) is a Cross Platform GUI Metalink editor written in Python which allows you to create and edit Metalinks.
- Metalink Generator can also be used to create Metalinks by filling out a Web form.
- Metalink tools (GPL) Unix/Windows command line tools for generating Metalinks with checksums and mirror/p2p lists.
- RoPkg::Metalink / Metalink @ Packages Resources (GPL) for automated Metalink generation.
[edit] Example .metalink file
.metalinks are XML text files.
<metalink version="3.0" xmlns="http://www.metalinker.org/"> <files> <file name="example.ext"> <verification> <hash type="md5">example-md5-hash</hash> <hash type="sha1">example-sha1-hash</hash> <signature type="pgp"/> </verification> <resources> <url type="ftp" location="us" preference="90">ftp://ftp.example1.com/example.ext</url> <url type="ftp" location="uk" preference="90">ftp://ftp.example2.com/example.ext</url> <url type="http" location="us" preference="90">http://www.example1.com/example.ext</url> <url type="http" location="uk" preference="90">http://www.example2.com/example.ext</url> <url type="http" location="de" preference="90">http://www.example3.com/example.ext</url> <url type="bittorrent" preference="100">http://www.ex.com/example.ext.torrent</url> <url type="rsync"/> <url type="magnet"/> <url type="ed2k"/> </resources> </file> </files> </metalink>