Fake BitTorrent Client
A Node.js BitTorrent API implementation for testing or cheating on trackers.
All in name, this API will never upload or download data from peers, it will only notify tracker.
Usage
import { FakeBitTorrentClient } from 'fake-bittorrent-client';
const trackerUrl = 'http://my.tracker.com:8080/announce';
const torrentHash = 'ee8d8728f435fd550f83852aabab5234ce1da528';
const options = {
peerId: '-DE13F0-ABCDEF',
port: 31452,
timeout: 1500,
uploaded: 1024 * 16,
downloaded: 1024 * 16
};
const client = new FakeBitTorrentClient(trackerUrl, torrentHash, options);
const bytes = 1024 * 1024 * 32;
client
.upload(bytes)
.then(() => console.log(['Uploaded ', bytes, ' bytes to ', trackerUrl].join('')))
.catch(err => console.error(['Error : ', err].join('')));
client
.download(bytes)
.then(() => console.log(['Downloaded ', bytes, ' bytes from ', trackerUrl].join('')))
.catch(err => console.error(['Error : ', err].join('')));
$ fake-bittorrent-client --tracker 'http://my.tracker.com:8080/announce' --hash 'ee8d8728f435fd550f83852aabab5234ce1da528' --upload 33554432 --timeout 1500
Uploaded 33554432 bytes to http://my.tracker.com:8080/announce
$ fake-bittorrent-client --tracker 'http://my.tracker.com:8080/announce' --hash 'ee8d8728f435fd550f83852aabab5234ce1da528' --download 33554432 --timeout 1500
Downloaded 33554432 bytes from http://my.tracker.com:8080/announce
Built With
- Atom - The hackable text editor
- npm - The package manager for JavaScript
- Node.js - Node.js JavaScript runtime ✨🐢🚀✨
- minimist - Parse argument options
Contributing
All contributions are welcome, juste open a pull request.
Versioning
I use GitHub for versioning. For the versions available, see the tags on this repository.
Authors
See also the list of contributors who participated in this project.
License
This project is licensed under the MIT License - see the LICENSE.md file for details