Future Of JPartialDownloader(Project Road Map)

Both developers and users like to see their program evolve. JPD like many other open source projects relies on user feedback. Indeed developers are satisfied when they present what users want in their software. For such reasons we extremely value feature requests and bug reports. These are the tools for our success and tools for users to have stronger and more useful open source programs.


JPartialDownloader is a Java HTTP[S]/FTP/BitTorrent partial downloader. At least it started out this way. Our goal was to write a program that downloaded files in pieces and later on merged them to reconstruct the main file. But after a while most of our development efforts were put on the BitTorrent protocol. It was very helpful if you could download only some of the files of a multi-file torrent. Multi-connection HTTP/FTP downloads was also added.

And now the project is moving in the direction to support features that are some how related to partial downloading.

User Interfaces

When JPD started it was simple, we needed an URL and an optional range to start downloading. It had a Command Line Interface and a simple Graphical User Interface. But in order to add new features we needed stronger user interfaces. (For example supporting mirror sites, multi-output files or selecting files from BitTorrent downloads).

Extending the CLIs would have made them very complex and a few people bothered to read the documentation and use these features. So we needed stronger UIs. There were two options in front of us. Using XML or GUI. Using XML was a acceptable approach and it was easier to test but most users prefer the GUI. So we decided to add a stronger GUI and left XML to be added in future.

Memory Issues

We use "make it run, make it right" cycles. (Or maybe "make it right, make it fast", whichever you like.) Now there are many places in the program that can be optimized for memory usage, but as optimization decreases development speed we don't try to make the program as efficient as possible. Instead in each release some new performance bottlenecks are fixed.

Currently the program is started with a limit of 64MB of memory. This amount is more than enough for HTTP/FTP protocols but the dynamic nature of BitTorrent downloads requires more memory. You can pass the -Xmx128m command line argument to your virtual machine to extend the memory limit. (That is java -Xmx128m -jar jpd.jar ...).