Die Bibliothek libtorrent 2.1 ist jetzt verfügbar und bietet eine Implementierung des BitTorrent-Protokolls, die auf geringen Speicherverbrauch und effiziente CPU-Nutzung abzielt. Diese Bibliothek wird in Torrent-Clients wie Deluge, qBittorrent, Folx, Lince, Miro, Flush und Free Download Manager sowie in einigen Netzspeichern verwendet. Der Code von libtorrent ist in C++ geschrieben und wird unter der BSD-Lizenz vertrieben.
In der neuen Version ist die Unterstützung des WebTorrent-Protokolls standardmäßig integriert, das das BitTorrent-Protokoll erweitert und dezentrale Netzwerke zur Verbreitung von Inhalten ermöglicht, indem es Verbindungen zwischen den Webbrowsern der Nutzer herstellt, die Inhalte ansehen. Um die Besucher von Websites in einem einheitlichen Content Delivery Network zu verbinden, reicht es aus, einen speziellen JavaScript-Code auf der Website zu platzieren, der die WebRTC-Technologie für den direkten Datenaustausch zwischen Browsern nutzt.
Die Integration von WebTorrent in libtorrent ermöglicht die Teilnahme an der Verbreitung von Inhalten sowohl über Desktop-Torrent-Clients als auch über die Browser von Webseitenbesuchern, wodurch hybride Netzwerke geschaffen werden, die BitTorrent und WebTorrent kombinieren. Torrent-Clients auf Basis von libtorrent können sich mit den in Browsern laufenden WebTorrent-Peers verbinden, die beispielsweise am Dateitausch über instant.io teilnehmen. Im Gegenzug können die Browser-Clients von WebTorrent über die Benutzer stationärer Clients auf die von BitTorrent-Peers über TCP/UDP bereitgestellte Sammlung von Torrents zugreifen.
Neben der Unterstützung von WebTorrent bietet die Version 2.1 von libtorrent ein neues Eingabe-/Ausgabebackend namens pread_disk_io, das die Funktionen pwritev und preadv nutzt, um Daten atomar in mehreren Puffer gleichzeitig zu lesen und zu schreiben. Dieses neue Backend ist effizienter im Umgang mit Festplatten, Netzwerk-Speicherlösungen und Dateisystemen, die über FUSE gemountet werden. Für solche Anwendungen wird pread_disk_io standardmäßig eingesetzt. Für NVMe-Laufwerke ist das ältere Backend, das die Dateimapping-Funktion über mmap nutzt, weiterhin effizienter und bleibt standardmäßig aktiv.
Quelle: opennet.ru
