| WebTorrent | |
|---|---|
Logo | |
| Original author | Feross Aboukhadijeh |
| Developer | WebTorrent |
| Initial release | 22 October 2013; 12 years ago (2013-10-22) |
| Repository | github |
| Written in | JavaScript |
| Operating system | Cross-platform |
| Available in | JavaScript |
| Type | Communications protocol,distributed file system,content delivery network |
| License | MIT[1] |
| Website | WebTorrent.io |
| Part ofa series on |
| File sharing |
|---|
Video on demand sites |
File sharing networks |
Streaming programs |
Anonymous file sharing |
Development and societal aspects |
WebTorrent is apeer-to-peer (P2P)streamingtorrent client written inJavaScript that enablesBitTorrent functionality directly withinweb browsers. Created byFeross Aboukhadijeh, the developer behindYouTube Instant, WebTorrent implements theBitTorrent protocol usingWebRTC for peer-to-peer data transfer, allowing users to download and stream torrents without requiring traditional torrent client software.
The project consists of both a browser-basedJavaScript library andWebTorrent Desktop, a standalonedesktop application built withElectron. WebTorrent Desktop serves as a bridge between the WebTorrent network and traditional BitTorrent networks, enabling interoperability between web-based and conventional torrent clients. The software supports commonvideo file formats andaudio file formats for in-browser streaming, making it particularly suitable formedia streaming applications.
WebTorrent isopen-source software distributed under theMIT License and is actively developed onGitHub. The project has gained significant adoption in theweb development community for its ability to bring decentralized file sharing capabilities to web applications without requiring users to install additional software or browser plugins.
Before creating WebTorrent, the developers first created PeerCDN, a peer-to-peercontent delivery network which was bought byYahoo! in 2013.
The idea behind WebTorrent is to make a BitTorrent-like protocol that works on the web browser, maintaining as much compatibility with BitTorrent as possible.[2] Anyweb browser should be able to connect to apeer-to-peer swarm, fetch content, verify that it is correct, and display it to the user – all as much as possible without centralized servers relying on a network entirely of people's browsers.[3] WebTorrent uses the sameprotocol as BitTorrent but uses a differenttransport layer. WebTorrent primarily relies onWebRTC connections, while BitTorrent usesTCP connections andUDP datagrams directly.[3]
The WebTorrent Desktop bridges the two networks of WebRTC-based WebTorrent and TCP/UDP-based BitTorrent simultaneously. The BitTorrent clientVuze (formerlyAzureus) less gracefully but adequately functionally incorporated WebTorrent adding simultaneous network bridging to their software. The developers usedElectron that makes desktop apps using JavaScript with access to all theAPIs fromChrome andNode.[3]
Online video is the core focus as that is where WebTorrent is most useful. It is less suited for smaller files or data sets but is ideal for larger files.[3]
File availability, as with BitTorrents, is dependent on torrentseeding. If only a few users are sharing a file, then an HTTP server that provideswebseeding would be the fallback. There is no sharing without webseeding. However, this could have some positive implications. Rather than using a middleman upload site to share a large private file with another person, with WebTorrent you may directly connect without leaving traces somewhere or potentially being archived on some upload site. You simply drag and drop your file to create a magnet link that you can share with your friend. Connections are already encrypted, but you may add extra layers of encryption with keys to send another way. RAM limits may be managed withIndexedDB.[3]
The client prioritizes downloading pieces chronologically, so that the file is able to be streamed uninterrupted even before the download is complete.[4]
WebTorrent uses widely supported open web standards like WebRTC and therefore works in any modern browser, includingGoogle Chrome,Firefox, andOpera for Desktop and Android,Microsoft Edge andSafari.[5][better source needed]
Brave web browser bundles WebTorrent into the native executables and integrates WebTorrent into its UI.[6]
Some torrent clients supports seeding to WebTorrent peers, for exampleBiglyBT (has Android version) and clients based on thelibtorrent[4] likeQBittorrent,Deluge andLibreTorrent (Android).
Launched in 2017,[7]BitChute is avideo hosting service that used WebTorrent P2P technology.[8][9] It claimed in order to ease bandwidth issues of centralized streaming.[7] According toFredrick Brennan, there is little evidence BitChute actually uses peer-to-peer technology.[10] By April 2021, the option to host videos using WebTorrent on BitChute "appears to have been deprecated", according toArs Technica.[11]
PeerTube formerly used WebTorrent but stopped because of maintaining complexity.[12]
We needed to settle a technical debt: v6 removes support for WebTorrent to focus on HLS (with WebRTC P2P).