The Quick Downloader Project is a collaboration between Joshua Brown and I. We have been working on this project because everyone benefits from a faster internet and reasons such as
Fast download times are better than slow ones.
You want to download a song in a hurry, but can't because the download takes half an hour.
So Quick Downloader was born.
How does it work?
Yes, how does one build a program that can do things faster than others? Well that's a good question. Firstly, credit where it's due, the idea was Josh's. The thought plan was to make use of a byte range request. If you request small chunks or Parts as we call them in throughout the program, and request multiple at a time, then things like network throttling can be overcome. Say your server throttles (limits) your download speed at 10Mb/s but your connection is capable of 50Mb/s, you’ll want to use all of that, right? So, the solution, make 5 separate requests, each downloading different parts of the original file, piece them together at the end and bob’s your uncle. Sure enough, it works a charm. Again, credit where it's due, Josh wrote the whole download algorithm and I just put it in a nice little UI. But a test reported that a 200 MB file downloaded using Google Chrome took about 30 minutes and the same file on the same network just using Quick Downloader was completed in just 5 minutes!. Now that's a significant jump, and it’ll be even more so if you have a fast HD/SSD (the latter would be better) and of course, a good internet connection. But I often find myself downloading huge files from servers that apply download speed restrictions wherever they can, so I use Quick Downloader to help me with that.
Is it free?
Yes, it’s completely free and open source. Josh and I are still contemplating whether we make paid addons but the core will always remain free. And there won’t be ads in it.
What is the program written in?
The UI is written in React.js and Electron. Keyboard shortcuts are handled by Mousetrap. The Download Algorithm was going to be written in Python but later the idea was ditched for a complete Node.JS implementation. It’d simply be easier, ya know?
What else can it do?
We’ve got a download sequencer, meaning active downloads will only begin when all others have finished, this will help with things like speed as the others won’t be interfering with the current one.
We’ve also got proxy settings, so if you use one, there you go.
Admittedly, we spent way longer making it look nice than we should have but the result is - in my opinion at least - quite magnificent.
Other than that, at this point, that's about it. There are no themes yet, but that's coming, promise. We were also contemplating a few extra features, but at the moment, the downloading is the sole function.
Things to note:
- As the downloader is built around the Byte-Range-Request system, a server that doesn’t support it (or just doesn’t report that it does) won’t work. I’ll work on a fix for that soon but for now, if the server doesn’t support it, then I’m afraid, neither does Quick Downloader.
- Quick Downloader is in early stages of development, if you do find an issue (and you will), please report it. That would greatly help us out.
- The codebase is a mess, if you do want to contribute, brace yourself.