About

Dart library for implementing BitTorrent client.

Whole Dart Torrent client contains serival parts :

This package implements regular BitTorrent Protocol and manage above packages to work together for downloading.

BEP Support:

  • BEP 0003 The BitTorrent Protocol Specification
  • BEP 0005 DHT Protocal
  • BEP 0006 Fast Extension
  • BEP 0010 Extension Protocol
  • BEP 0011 Peer Exchange (PEX)
  • BEP 0015 UDP Tracker Protocal

Developing:

  • BEP 0029 uTorrent transport protocol
  • BEP 0014 Local Service Discovery
  • BEP 0055 Holepunch extension
  • BEP 0009 Extension for Peers to Send Metadata Files

Other support will come soon.

How to use

This package need to dependency torrent_model:

dependencies:
  torrent_model : ^1.0.3
  torrent_task : ^0.1.2

First , create a Torrent model via .torrent file:

  var model = await Torrent.parse('some.torrent');

Second, create a Torrent Task and start it:

  var task = TorrentTask.newTask(model,'savepath');
  task.start();

User can add some listener to monitor TorrentTask running:

  task.onTaskComplete(() => .....);
  task.onFileComplete((String filePath) => .....);

and there is some method to control the TorrentTask:

   // Stop task:
   task.stop();
   // Pause task:
   task.pause();
   // Resume task:
   task.resume();

Libraries

torrent_task