dtorrent_task_v2 0.4.1
dtorrent_task_v2: ^0.4.1 copied to clipboard
BitTorrent download client package written by pure Dart language.
About #
Dart library for implementing BitTorrent client.
Whole Dart Torrent client contains several 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 0014 Local Service Discovery]
- [BEP 0015 UDP Tracker Protocal]
- [BEP 0029 uTorrent transport protocol]
- [BEP 0055 Holepunch extension]
Developing:
- [BEP 0009 Extension for Peers to Send Metadata Files]
Other support will come soon.
How to use #
This package requires dependency dtorrent_parser:
dependencies:
dtorrent_parser: ^1.0.8
dtorrent_task: ^0.4.1
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');
await task.start();
User can add event listeners to monitor TorrentTask running:
EventsListener<TaskEvent> listener = task.createListener();
listener
..on<TaskCompleted>((event) {
print('Download completed!');
})
..on<TaskFileCompleted>((event) {
print('File completed: ${event.file.originalFileName}');
})
..on<TaskStopped>((event) {
print('Task stopped');
});
And there are methods to control the TorrentTask:
// Stop task:
await task.stop();
// Pause task:
task.pause();
// Resume task:
task.resume();