Utilizes the Range HTTP header to download a file with multiple connections in parallel, bypassing cheap bandwidth throttling

Overview

async-range-downloader

Utilizes the Range HTTP header to download a file with multiple connections in parallel, bypassing cheap bandwidth throttling

The in parallel running workers are lightweight coroutines built on ktor's HttpClient and coroutine wrappers around java.nio

Caveats

  • Server must support the Range header
  • Server side throttling must be on a per-connection-basis, not IP address

Usage

Usage: ard [options...] url [file]
Arguments:
    url -> URL of file to download { String }
    file -> Path of the output file (optional) { String }
Options:
    --workers, -w [10] -> Number of async workers { Int }
    --delay, -d [1] -> Delay between opening requests in seconds { Int }
    --help, -h -> Usage info

If a filehost for example only allowed free-tier users to download at 1MB/s but your bandwidth allows for 10MB/s, you'd use 10 workers

TODO

  • No error handling whatsoever at this time, should at least care for response codes
  • Adding options for custom headers, cookies, or even auth
  • Proxy support to bypass IP based throttling
You might also like...
HttpMocker is a simple HTTP mocking library written in Kotlin to quickly and easily handle offline modes in your apps

HttpMocker HttpMocker is a very lightweight Kotlin library that allows to mock HTTP calls relying on either OkHttp or the Ktor client libraries. It ca

Kotlin HTTP requests library. Similar to Python requests.

khttp khttp is a simple library for HTTP requests in Kotlin. It functions similarly to Python's requests module. import khttp.get fun main(args: Arra

Kotlin DSL http client
Kotlin DSL http client

Introduction Kotlin DSL http client Features 🔹 Developers Experience-driven library without verbosity. 🔹 Native way to use http client in Kotlin. 🔹

The easiest HTTP networking library for Kotlin/Android

Fuel The easiest HTTP networking library for Kotlin/Android. You are looking at the documentation for 2.x.y.. If you are looking for the documentation

Asynchronous socket, http(s) (client+server) and websocket library for android. Based on nio, not threads.

AndroidAsync AndroidAsync is a low level network protocol library. If you are looking for an easy to use, higher level, Android aware, http request li

Java HTTP Request Library

Http Request A simple convenience library for using a HttpURLConnection to make requests and access the response. This library is available under the

Unirest in Java: Simplified, lightweight HTTP client library.

Unirest for Java Install With Maven: !-- Pull in as a traditional dependency -- dependency groupIdcom.konghq/groupId artifactIdunire

super simple library to manage http requests.

HttpAgent super simple library to manage http requests. Gradle dependencies { implementation 'com.studioidan.httpagent:httpagent:1.0.16@aar' } No

An android asynchronous http client built on top of HttpURLConnection.

Versions 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 Version 1.0.6 Description An android asynchronous http client based on HttpURLConnection. Updates U

Releases(v0.1.0)
  • v0.1.0(Jul 19, 2021)

    Requires Java 11

    Usage: ard [options...] url [file]
    Arguments:
        url -> URL of file to download { String }
        file -> Path of the output file (optional) { String }
    Options:
        --workers, -w [10] -> Number of async workers { Int }
        --delay, -d [1] -> Delay between opening requests in seconds { Int }
        --help, -h -> Usage info
    
    Source code(tar.gz)
    Source code(zip)
    ard-0.1.0.zip(5.64 MB)
Owner
Torben
Torben
LiteHttp is a simple, intelligent and flexible HTTP framework for Android. With LiteHttp you can make HTTP request with only one line of code! It could convert a java model to the parameter and rander the response JSON as a java model intelligently.

Android network framework: LiteHttp Tags : litehttp2.x-tutorials Website : http://litesuits.com QQgroup : 42960650 , 47357508 Android网络通信为啥子选 lite-htt

马天宇 829 Dec 29, 2022
Android Easy Http - Simplest android http request library.

Android Easy Http Library 繁體中文文檔 About Android Easy Http Library Made on OkHttp. Easy to do http request, just make request and listen for the respons

null 13 Sep 30, 2022
Display list of item from local Json and download, view after downloading

Download App Features: ● Display fake responses for the list of videos and books ● choose one or multiple files to download, ● show the download perce

Mahmoud Othman 1 Dec 25, 2021
This tool lets you download ebooks and videos from packtpub.com even if you don't have a full paid subscription.

Packtpub Scrapper TL;DR This tool lets you download ebooks and videos from https://www.packtpub.com/ even if you don't have a full paid subscription.

Meghdut Mandal 11 Dec 4, 2022
Asynchronous Http and WebSocket Client library for Java

Async Http Client Follow @AsyncHttpClient on Twitter. The AsyncHttpClient (AHC) library allows Java applications to easily execute HTTP requests and a

AsyncHttpClient 6k Jan 8, 2023
Square’s meticulous HTTP client for the JVM, Android, and GraalVM.

OkHttp See the project website for documentation and APIs. HTTP is the way modern applications network. It’s how we exchange data & media. Doing HTTP

Square 43.4k Jan 5, 2023
A type-safe HTTP client for Android and the JVM

Retrofit A type-safe HTTP client for Android and Java. For more information please see the website. Download Download the latest JAR or grab from Mave

Square 41k Jan 5, 2023
HTTP Server for Android Instrumentation tests

RESTMock REST API mocking made easy. RESTMock is a library working on top of Square's okhttp/MockWebServer. It allows you to specify Hamcrest matchers

Andrzej Chmielewski 750 Dec 29, 2022
🚀 A Complete Fast Android Networking Library that also supports HTTP/2 🚀

Fast Android Networking Library About Fast Android Networking Library Fast Android Networking Library is a powerful library for doing any type of netw

AMIT SHEKHAR 5.5k Dec 27, 2022
Multiplatform coroutine-based HTTP client wrapper for Kotlin

networkinkt This is a lightweight HTTP client for Kotlin. It relies on coroutines on both JS & JVM platforms. Here is a simple GET request: val text =

Egor Zhdan 31 Jul 27, 2022