Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
ECF BitTorrent Provider
Project Lead: Remy Chi Jian Suen
Mentor(s): Wayne Beaton, Scott Lewis, and Chris Aniszczyk
The goal if this project is to create an implementation of the file sharing API provided by the Eclipse Communication Framework using the BitTorrent protocol.
Contents
BitTorrent Plug-in Data Model
The package name org.eclipse.bittorrent may be altered when the plug-in is released.
Text in red denotes that the code has not been written yet.
org.eclipse.bittorrent
Host - reads in a Torrent connects to peers to begin seeding or downloading
- contains exactly one Torrent
- contains one or more DataFiles
- contains one or more Pieces
Torrent - a representation of the metainfo stored within a .torrent file
org.eclipse.bittorrent.internal.torrent
DataFile - a representation of a file on the user's system for read/write operations
- contains one or more Pieces
Piece - a piece of data that is needed to complete a download
- contains one or more DataFiles
org.eclipse.bittorrent.internal.net
ConnectionPool - a thread pool that manages ConnectionThreads
- contains exactly one Host
- contains one or more ConnectionThreads
ConnectionThread - creates a PeerConnection to talk to a peer
- contains exactly one PeerConnection
PeerConnection - connects to a peer and exchanges information
- exactly one Host
org.eclipse.bittorrent.internal.encode
BEncodedDictionary - holds the key-value pairs stored within a bencoded string.
Decode - decodes information such as the contents of a torrent file
Encode - converts or alters information for use
Plug-in Usage
This section will describe how a developer would create a client using the BitTorrent plug-in.
Use Cases
- - downloads a single file from a torrent until completion
- - begin downloading a single file from a torrent and stop the download after a period of time
- - resume the download
- - cancel the download and delete the downloaded files