FLUTTER ECOSYSTEM

moham96/dtorrent_task

बिटटॉरेंट डाउनलोड क्लाइंट

dtorrent_task प्रोजेक्ट कवर
Stars
31
Forks
11
अंतिम पुश (UTC)
12 दिस॰ 2025
प्रोजेक्ट स्थिति
सक्रिय
MOHAMMAD RASIM GitHub avatar
GITHUB User

MOHAMMAD RASIM ↗

भाषाएँDart

तकनीकी विषय

इस रिपॉज़िटरी के पैकेज

उपयोग की गई निर्भरताएँ

निर्भरता सूची 17 आइटम
  • dtorrent_parser^1.0.9
  • dtorrent_tracker^1.3.20
  • bittorrent_dht^0.0.15
  • dtorrent_common^1.0.8
  • b_encode_decode^1.0.5
  • utp_protocol^1.0.5
  • dart_ipify^1.1.1
  • events_emitter2^1.0.3
  • mime>=1.0.4 <3.0.0
  • collection^1.0.0
  • crypto^3.0.3
  • args^2.4.2
  • logging^1.2.0
  • coverageडेवलपमेंट^1.15.0
  • lintsडेवलपमेंट>=2.0.1 <7.0.0
  • pathडेवलपमेंट^1.8.3
  • testडेवलपमेंट^1.24.3

मूल README

यह अंग्रेज़ी मूल स्नैपशॉट है। नवीनतम सामग्री GitHub पर देखें।

README खोलें / बंद करें

About

Dart library for implementing BitTorrent client.

codecov

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 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 need to dependency dtorrent_parser:

dependencies:
  dtorrent_parser : ^1.0.4
  dtorrent_task : '>= 0.2.1 < 2.0.0'

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();

Testing

Run tests:

dart test

Run tests with coverage:

dart test --coverage=coverage
dart run coverage:format_coverage --lcov --in=coverage --out=coverage/lcov.info --packages=.dart_tool/package_config.json --report-on=lib

Or use the provided script:

dart tool/coverage.dart

The coverage report will be generated at coverage/lcov.info and can be viewed with tools like genhtml or uploaded to services like Codecov.

Coverage is automatically uploaded to Codecov on every push and pull request via GitHub Actions.