FLUTTER ECOSYSTEM

moham96/dtorrent_task

비트토렌트 다운로드 클라이언트

dtorrent_task 프로젝트 이미지
Stars
31
Forks
11
최근 푸시(UTC)
2025. 12. 12.
프로젝트 상태
활성
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.