WebTorrent

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.

Public WebSocket trackers, right now

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.

trackerstatusms
asking…

Clients that speak it

clientsincenotes
webtorrent (JavaScript)2014The reference: browser and Node; the Node side also speaks TCP, uTP and the DHT, bridging the two worlds.
WebTorrent Desktop2016A desktop client on the same library.
qBittorrent 5.32026Via 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.1as each updatesDeluge and the other libtorrent clients inherit it with the library; distro packages lag by a release cycle.
PeerTube2018Every instance runs its own WebSocket tracker; viewers are peers while watching.
P2P Media Loader (Novage)2019Video streaming over WebTorrent swarms; runs a public tracker too.
instant.io, βTorrent2015–16Browser clients on the library.

The protocol, as data

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.