Metalink as a companion of P2P networks
The file format that enhances content distribution in batch.
This article introduces the capabilities of Metalink (RFC 5854) and how is it useful to share contents over any mean, especially over P2P and XMPP.
About
Metalink is an Internet standard that harnesses the speed and power of P2P networking and traditional downloads in a single click.
A Metalink file is an XML file which allows to share multiple files over different resources in an indiscriminating manner.
Properties
Filetype
- meta4
- metalink
MIME-Type
- application/metalink+xml
- application/metalink4+xml
Standard
- RFC 5854
- RFC 6249
Advantages
- It is possible to distribute several files from multiple different resources of different protocols such as BitTorrent, eD2k, FTP, Gemini, Gnutella, Gopher, HTTP, and Kad in at once.
- It is possible to distribute several variations of the Metalink, without the need to dedicate nor preserve a specific local structure of files on your system, in contrast to BitTorrent which is not flexible.
Examples
Distribution of a singular file
This is a Metalink file which lists files of different resources and protocols.
2024-05-15T10:41:27Z 2285895680 MX-23.4_x64 1.0 en MX-23.4_x64, with a standard Debian 6.1 64 bit kernel and hardware support from Debian Stable. Suitable if your PC is a few years old. 9155136c5ea83179907dca55c6eb67b1 b3abe07dd145cc01a8a91a71721d5a80ea210b54 93e947ce888f6e5a79ab131d812ba5c92c82f0c77bdaa2bb91238c086f32eded ftp://ftp.mxlinux.i2p/iso/MX-23.4_x64.iso gemini://iso.mxlinux.i2p/MX-23.4_x64.iso magnet:?xt=urn:btih:c63a772102952fd53ece929b0e877c507c529d60amp;dn=MX-23.4_x64.iso&tr=http%3A%2F%2Fl2.mxrepo.com%3A6969%2Fannounceamp;tr=http%3A%2F%2Fit.mxrepo.com%3A6969%2Fannounce https://l2.mxrepo.com/torrents/MX-23.4_x64.iso.torrent ed2k://|file|MX-23.4_x64.iso.torrent|174692|EE14AEC681FFF5CD0886898E8844D81A|/ ed2k://|file|MX-23.4_x64.iso.torrent|174692|EE14AEC681FFF5CD0886898E8844D81A|h=O3TDN7OE5DMQDU2WPUXX4TZDLLABXUJG|/ magnet:?dn=MX-23.4_x64.iso.torrentamp;xt=urn:ed2k:ee14aec681fff5cd0886898e8844d81aamp;xt=urn:ed2khash:ee14aec681fff5cd0886898e8844d81aamp;xl=174692 ed2k://|file|MX-23.4_x64.iso|2285895680|C5737CF98843B6E8BED60AD6F5CFD063|/ ed2k://|file|MX-23.4_x64.iso|2285895680|C5737CF98843B6E8BED60AD6F5CFD063|h=7SNYO7RDOVONAG43S5AD6ERMHR4R4BTE|/ magnet:?dn=MX-23.4_x64.isoamp;xt=urn:ed2k:c5737cf98843b6e8bed60ad6f5cfd063amp;xt=urn:ed2khash:c5737cf98843b6e8bed60ad6f5cfd063amp;xl=2285895680
Notice, that it also includes links to a torrent.
Because a torrent is a metadata file of the file MX-23.4_x64.iso, then it is enclosed in tag "metaurl".
Distribution of multiple files
This is a Metalink which distributes multiple files (images and a document).
2024-12-22T23:25:53Z 6364 a281b9a26b37efb181842688d7269184 https://git.xmpp-it.net/sch/Slixfeed/raw/branch/master/README.md en Information about Slixfeed, including installation instructions. 187748 fe9116676d5b434ccf4e643f0a343946 https://git.xmpp-it.net/sch/Slixfeed/media/branch/master/slixfeed/documentation/screenshots/chat_add_url.png en monocles chat: Chat intreface. 89233 e4176448486ee41fde213819a5b1d4ca https://git.xmpp-it.net/sch/Slixfeed/media/branch/master/slixfeed/documentation/screenshots/adhoc_commands.png en monocles chat: Ad-Hoc Commands. 206658 d143526f2f276f47c977f328917cc2a5 https://git.xmpp-it.net/sch/Slixfeed/media/branch/master/slixfeed/documentation/screenshots/adhoc_add_url.png en Cheogram: Data Form (Subscribe). 104694 12612dd5f323d3573b1316c8a8eb53e1 https://git.xmpp-it.net/sch/Slixfeed/media/branch/master/slixfeed/documentation/screenshots/adhoc_settings.png en Cheogram: Data Form (Settings).
This would be useful to share multiple images on instant messaging systems such as XMPP.
In XMPP, the description of the first file be displayed.
Conclusion
If you do not want to rely on BitTorrent for sharing files, or if you tend to share data sets that are subjected to change from time to time, then Metalink is the solution for you.
Samples
Those samples are of older implementation (Metalink 3.0), yet are good as example.
Two Linux distribution projectss have utilized Metalinks to distribute software over eD2k and HTTP.