WebTorrent
# WebTorrent

WebTorrent est un client de streaming peer-to-peer basé sur Bittorrent qui utilise la technologie web WebRTC comme protocole de transport. Il est implémenté en JavaScript et Node.js et fonctionne sur les plateformes HTML lui permettant de fonctionner sur n'importe quel système. Il existe également un client pour le bureau, appelé WebTorrent Desktop, développé également en JavaScript et basé sur Node.js et le framework $Electron^,,$ pour Linux, MacOS et Windows. La technologie a été développée à l'origine par Feross Aboukhadijeh, un diplômé de l'université Stanford.

Il est possible de produire un réseau de diffusion de contenu (RDC ou en anglais CDN), basé sur le protocole WebRTC avec ce système.

La bibliothèque libtorrent supporte ce protocole dans sa version de développement.

## Utilisations

Il sert de protocole de réseau à différentes applications, parmi lesquelles le service de diffusion décentralisé de vidéo, PeerTube, développé à partir de 2015 à l'initiative de Framasoft et connecté au réseau Fediverse (principalement connu pour son outil $Mastodon)^,.$ C'est le cas également du service centralisé, BitChute, de partage de vidéo créées par ses utilisateurs.

Le service de cartographie spatiale de la Voie lactée, Gaia 3D, est également basé sur WebTorrent, il utilise les données fournies par l'Agence spatiale européenne, et en extrait les 2 millions d'étoiles connues de la voie lactée.

Le navigateur web Brave, utilise également WebTorrent pour télécharger directement les fichiers partagés par le réseau Bittorrent, via un lien $Magnet^,.$

## Histoire

La première version diffusée, est la version v0.1.1, sortie le 4 décembre 2013.

À l'origine WebTorrent, ne se connecte que via TCP et UDP en node.js, le client WebTorrent-Hybrid a été créé pour pouvoir se connecter à la fois directement dans ces protocoles, ainsi qu'en $WebRTC^,.$

Feross Aboukhadijeh présente la technologie à la JSConf Asia 2014.

Le support a été ajouté à libtorrent, permettant d'utiliser cette bibliothèque pour créer des clients $hybrides^,.$

