Skip to content

A Download Manager (Multiple connections, Multiple buffering, Fail recovery) (Java)

License

Notifications You must be signed in to change notification settings

MaanooAk/DownloaderM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DownloaderM

A Download Manager using multiple connection and multiple buffers to optimize the process of downloading a file.

Latest Release

Screenshot

Features

  • Multiple connections (multithreading)
  • Multiple buffering (for each connection)
  • Fail recovery (continue downloading after connection error)
  • Pause/Resume downloading
  • HTTP Redirects

Multiple connections

Splits the file to be downloaded in multiple parts and opens one connection for each of them. All connections write parallel to the same file.

Multiple buffering

If number of buffers is set to greater than 1 then each connection uses a multiple buffering logic. While one thread downloads data to one buffer, another thread writes data to the disk from an other buffer.

Recovery

When the downloading is stopped or interrupted a recovery file (.dmrecovery) is created. It can be used to resume the download even after the termination of the program. On the successful download the recovery file is deleted.

Interface

  • Pause/Resume/Cancel downloading
  • Progress bars for each connection
  • Settings menu

Command line usage

Start download:

java -jar dm.jar url file

Start recovery download:

java -jar dm.jar -r recovery_file

Library usage

Core files are in com.maanoo.downloaderm.core

Start download:

DownloadThreadGroup dtg = DownloadEngine.download(url, file);
dtg.start();

Start download with listeners:

DownloadThreadGroup dtg = DownloadEngine.download(url, file);

dtg.getStatus().addListener(new DownloadStatus.Listener() {

    @Override
    public void onStateChange(DownloadStatus.State state) {

    }

    @Override
    public void onPauseChange(int id, boolean paused) {

    }

    @Override
    public void onSubDone(int id) {

    }

});

dtg.start();

Start recovery download:

DownloadThreadGroup dtg = DownloadEngine.recovery(file);
dtg.start();

License

All files in this repository are Copyright (c) 2014-2017 DownloaderM author list.

Code in this repository is licensed under the GNU General Public License v3.0.

Data in this repository is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License.

DownloaderM author list can be determined via git shortlog -sne.

About

A Download Manager (Multiple connections, Multiple buffering, Fail recovery) (Java)

Resources

License

Stars

Watchers

Forks

Packages

No packages published