A streaming torrent client that works in Node.js and the browser using WebRTC.
WebTorrent is a streaming torrent client that runs in both Node.js and web browsers, using WebRTC for peer-to-peer connections in the browser. It allows users to download and share files via the BitTorrent protocol directly in the browser without plugins, bridging the gap between traditional torrent clients and the web.
Developers building web-based file-sharing applications, streaming services, or decentralized web apps that require P2P data transfer. Also useful for Node.js applications needing a lightweight torrent client.
It's the first BitTorrent client that works natively in browsers using open web standards, enabling seamless P2P file sharing and streaming across web and desktop environments with a single JavaScript codebase.
⚡️ Streaming torrent client for the web
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The same npm package works in both Node.js and browsers with no native dependencies, allowing developers to write torrent functionality once and deploy it everywhere.
Uses WebRTC data channels for peer-to-peer connections in browsers, eliminating the need for plugins or extensions and leveraging standard web technologies.
Files are exposed as readable streams, enabling on-demand fetching and seeking, and video torrents can be played directly in HTML5 video tags for seamless streaming.
Supports magnet URIs, DHT, trackers, local service discovery, and protocol extensions via a modular ecosystem of npm packages, covering comprehensive BitTorrent features.
In browser environments, WebTorrent can only connect to other WebTorrent-compatible peers via WebRTC and cannot interact with standard TCP/UDP torrent clients, reducing the available peer pool.
Relies on WebRTC, which may not be supported in all browsers or can be blocked by network policies, and requires other clients to adopt WebTorrent's protocol changes for full connectivity.
Being written entirely in JavaScript, it may have performance trade-offs compared to native clients, especially for resource-intensive tasks like handling many simultaneous torrents or large files.