webtorrent 0,5,16,0,6,63,0,27 travis-ci npm

:zap: Streaming torrent client for the web


WebTorrent
WebTorrent

The streaming torrent client. For node.js and the web.

gitter travis appveyor npm version npm downloads Standard - JavaScript Style Guide


**WebTorrent** is a streaming torrent client for **node.js** and the **browser**. YEP, THAT'S RIGHT. THE BROWSER. It's written completely in JavaScript – the language of the web – so the same code works in both runtimes. In node.js, this module is a simple torrent client, using TCP and UDP to talk to other torrent clients. In the browser, WebTorrent uses **WebRTC** (data channels) for peer-to-peer transport. It can be used **without** browser plugins, extensions, or installations. It's Just JavaScript™. Note: WebTorrent does **not** support UDP/TCP peers in browser. Simply include the [`webtorrent.min.js`](https://cdn.jsdelivr.net/webtorrent/latest/webtorrent.min.js) script on your page to start fetching files over WebRTC using the BitTorrent protocol, or `require('webtorrent')` with [browserify](http://browserify.org/). See [demo apps ](#webtorrent-in-production) and [code examples](#usage) below. To make BitTorrent work over WebRTC (which is the only P2P transport that works on the web) we made some protocol changes. Therefore, a browser-based WebTorrent client or **"web peer"** can only connect to other clients that support WebTorrent/WebRTC. To seed files to web peers, use a client that supports WebTorrent, e.g. [WebTorrent Desktop][webtorrent-desktop], a desktop client with a familiar UI that can connect to web peers, [webtorrent-hybrid](https://github.com/webtorrent/webtorrent-hybrid), a command line program, or [Instant.io](https://instant.io/), a website. Established torrent clients like **Vuze** have [already added WebTorrent support](https://wiki.vuze.com/w/WebTorrent) so they can connect to both normal *and* web peers. We hope other clients will follow. ![Network](https://webtorrent.io/img/network.png) ### Features - **Torrent client for node.js & the browser** (same npm package!) - **Insanely fast** - Download **multiple torrents** simultaneously, efficiently - **Pure Javascript** (no native dependencies) - Exposes files as **streams** - Fetches pieces from the network on-demand so seeking is supported (even before torrent is finished) - Seamlessly switches between sequential and rarest-first piece selection strategy - Supports advanced torrent client features - **magnet uri** support via **[ut_metadata](https://github.com/webtorrent/ut_metadata)** - **peer discovery** via **[dht](https://github.com/webtorrent/bittorrent-dht)**, **[tracker](https://github.com/webtorrent/bittorrent-tracker)**, and **[ut_pex](https://github.com/fisch0920/ut_pex)** - **[protocol extension api](https://github.com/webtorrent/bittorrent-protocol#extension-api)** for adding new extensions - **Comprehensive test suite** (runs completely offline, so it's reliable and fast) #### Browser/WebRTC environment features - **WebRTC data channels** for lightweight peer-to-peer communication with **no plugins** - **No silos.** WebTorrent is a P2P network for the **entire web.** WebTorrent clients running on one domain can connect to clients on any other domain. - Stream video torrents into a `

Related Repositories

webtorrent

webtorrent

:zap: Streaming torrent client for the web ...

webtorrent-desktop

webtorrent-desktop

:heart: Streaming torrent app for Mac, Windows, and Linux ...

instant.io

instant.io

:rocket: Streaming file transfer over WebTorrent (torrents on the web) ...

ferment

ferment

Peer-to-peer audio publishing and streaming application. Like SoundCloud but decentralized. A mashup of ssb, webtorrent and electron. ...

webtorrentapp

webtorrentapp

Webtorrent App ...


Top Contributors

feross DiegoRBaquero josephfrazier fisch0920 greenkeeperio-bot astro dcposch joseph-onsip valeriangalliat grunjol gillesdemey ArtskydJ jhiesey solderzzc mathiasvr Stiveknx olalonde devTristan yciabaud ferrolho substack janza MikeKovarik OlaviSau ReadmeCritic shyamsalimkumar Chocobozzz andreapaiola elendirx vinz243

Dependencies

package version
addr-to-ip-port ^1.4.2
bitfield ^1.1.2
bittorrent-dht ^7.2.2
bittorrent-protocol ^2.1.5
chunk-store-stream ^2.0.2
create-torrent ^3.24.5
debug ^2.2.0
end-of-stream ^1.1.0
fs-chunk-store ^1.6.2
immediate-chunk-store ^1.0.8
inherits ^2.0.1
load-ip-set ^1.2.7
memory-chunk-store ^1.2.0
mime ^1.3.4
multistream ^2.0.5
package-json-versionify ^1.0.2
parse-torrent ^5.8.0
pump ^1.0.1
random-iterate ^1.0.1
randombytes ^2.0.3
range-parser ^1.2.0
readable-stream ^2.1.4
render-media ^2.8.0
run-parallel ^1.1.6
run-parallel-limit ^1.0.3
safe-buffer ^5.0.1
simple-concat ^1.0.0
simple-get ^2.2.1
simple-peer ^8.0.0
simple-sha1 ^2.0.8
speedometer ^1.0.0
stream-to-blob ^1.0.0
stream-to-blob-url ^2.1.0
stream-with-known-length-to-buffer ^1.0.0
torrent-discovery ^8.1.0
torrent-piece ^1.1.0
uniq ^1.0.1
unordered-array-remove ^1.0.2
ut_metadata ^3.0.8
ut_pex ^1.1.1
xtend ^4.0.1
zero-fill ^2.2.3
dev babili ^0.1.4
bittorrent-tracker ^9.0.0
brfs ^1.4.3
browserify ^14.0.0
cross-spawn ^5.0.1
electron-prebuilt ^0.37.8
finalhandler ^1.0.0
network-address ^1.1.0
run-series ^1.1.4
serve-static ^1.11.1
standard *
tape ^4.6.0
webtorrent-fixtures ^1.5.0
zuul ^3.10.1

Releases

-   v0.97.2 zip tar
-   v0.97.1 zip tar
-   v0.96.5 zip tar
-   v0.96.4 zip tar
-   v0.96.3 zip tar
-   v0.96.2 zip tar
-   v0.96.1 zip tar
-   v0.96.0 zip tar
-   v0.95.6 zip tar
-   v0.95.5 zip tar
-   v0.95.4 zip tar
-   v0.95.3 zip tar
-   v0.95.2 zip tar
-   v0.95.1 zip tar
-   v0.95.0 zip tar
-   v0.94.4 zip tar
-   v0.94.3 zip tar
-   v0.94.2 zip tar
-   v0.94.1 zip tar
-   v0.94.0 zip tar
-   v0.93.4 zip tar
-   v0.93.3 zip tar
-   v0.93.2 zip tar
-   v0.93.1 zip tar
-   v0.93.0 zip tar
-   v0.92.0 zip tar
-   v0.91.4 zip tar
-   v0.91.3 zip tar
-   v0.91.2 zip tar
-   v0.91.1 zip tar