A modern, full-featured BitTorrent client built on a shared TypeScript engine that runs everywhere.
Chrome Web Store | new.jstorrent.com
| Platform | Status | Notes |
|---|---|---|
| Chrome Extension | ✅ Available | Chrome, Edge, Brave, and other Chromium browsers |
| Android | ✅ Available | Native app with QuickJS engine |
| Desktop | ✅ Available | Rust native host for high-performance I/O |
| ChromeOS | ✅ Available | Extension + Android companion app |
| iOS | 🚧 Planned | Sideload only |
One TypeScript BitTorrent engine powers all platforms. Platform-specific native code handles networking and disk I/O, while the core protocol logic remains shared and tested across environments.
- ✅ Full BitTorrent protocol implementation
- ✅ Magnet link support
- ✅ .torrent file support
- ✅ Protocol encryption (MSE/PE)
- ✅ Seeding and leeching
- ✅ Tit-for-tat choking algorithm
- ✅ Optimistic unchoking
- ✅ Rarest-first piece selection
- ✅ Endgame mode
- ✅ Request pipelining
- ✅ SHA1 piece verification
- ✅ Fast extension (BEP 6)
- ✅ Extension protocol (BEP 10)
- ✅ Metadata exchange / magnet resolution (BEP 9)
- ✅ UPnP port mapping
- ✅ DHT (Distributed Hash Table)
- ✅ PEX (Peer Exchange)
- ✅ UDP and HTTP trackers
- ✅ IPv4 and IPv6
- ✅ Native host for fast networking and disk I/O
- ✅ File skipping and priorities
- ✅ Bandwidth throttling
- ✅ Connection limits
- ✅ Traditional torrent client UI
- ✅ Customizable interface
- ✅ Super responsive
- ✅ Dark mode
- ✅ Drag and drop torrents
- ✅ Click magnet links to add
- ✅ Per-torrent and global statistics
JSTorrent started as a Chrome App, was rebuilt as a Chrome Extension when Apps were deprecated, and has since expanded to Android and desktop platforms—all sharing the same TypeScript engine.
Written in TypeScript with comprehensive test coverage, including integration tests against libtorrent.
See DEVELOPMENT.md for build instructions and project structure.
MIT