BitTorrent in the browser: the same swarms, the same pieces and hashes, with WebRTC between peers and a WebSocket to the tracker because a browser can open nothing else. The project is webtorrent.io — the library, the desktop app, the docs. This page is a service beside it: what is up, who speaks it, and the protocol written down.
Browsers cannot use UDP trackers or the DHT; every browser swarm on the internet depends on these few servers. Each is asked from your browser as you read this. Full list, with the dead ones and their history: known trackers.
| tracker | status | ms |
|---|---|---|
| asking… | ||
| client | since | notes |
|---|---|---|
| webtorrent (JavaScript) | 2014 | The reference: browser and Node; the Node side also speaks TCP, uTP and the DHT, bridging the two worlds. |
| WebTorrent Desktop | 2016 | A desktop client on the same library. |
| qBittorrent 5.3 | 2026 | Via libtorrent 2.1 (released July 2026). Announces to wss:// trackers named in a torrent and answers browser peers over WebRTC; the first mainstream desktop client to do so. Some 5.2.x builds already do. |
| Anything on libtorrent 2.1 | as each updates | Deluge and the other libtorrent clients inherit it with the library; distro packages lag by a release cycle. |
| PeerTube | 2018 | Every instance runs its own WebSocket tracker; viewers are peers while watching. |
| P2P Media Loader (Novage) | 2019 | Video streaming over WebTorrent swarms; runs a public tracker too. |
| instant.io, βTorrent | 2015–16 | Browser clients on the library. |
WebTorrent never had a BEP: it is what the library does. Torrent Schema writes BitTorrent down in JSON-LD — bencode, metainfo, trackers, the peer wire — and WebTorrent as an overlay on it: the WebSocket tracker messages, the rule that the wire protocol runs over the data channel unchanged, and the things implementations get wrong (one offer per tracker, no a=ice-options:trickle, an answer is not a connection). A codec reads the schema and reproduces real torrents, real tracker answers and real peer sessions byte for byte — webtorrent's, and qBittorrent 5.3's.
A peer written from the schema, in a tab, fetching and playing a film from a public swarm with no torrent library at all.