aget - A small and performant HTTP/HTTPS/Gemini download tool Usage: > aget ? URL/A,TO,BUFSIZE/K/N,MINIMIZEDELAY/S,TIMEOUTSECONDS/K/N,DUMPHEADERS/K,TOSTDOUT/S,ONLYPROGRESS/S,QUIET/S: URL: The URL to download. If no protocol part is given in the URL, it defaults to http://. TO: Optional destination path. The default is to download to the current directory, using the file name from the URL. If a drive or directory is specified, it will download there instead. If a path with file name is specified, it will download to that. BUFSIZE: Total buffer size in Bytes. This will be rounded to a size which makes sense for writing to a file system. Default is 128kB. MINIMIZEDELAY: Do not wait until the buffer is filled up before writing. Beneficial for minimizing delay, if you are not downloading to a normal filesystem, but instead to something that does not prefer evenly sized chunks like PIPE:. TIMEOUTSECONDS: How many seconds to wait until connection times out. The default is whatever the connect timeout in the TCP/IP is. DUMPHEADERS: Dump the headers from the server response to this file. The format can be parsed by dos.library/ReadArgs() and friends. TOSTDOUT: Print the downloaded data to the standard output instead of downloading it to disk. ONLYPROGRESS: Only show the progress bar during download. QUIET: Print no output, except if an error is encountered. Example: 1> aget https://uhc.a1k.org/UHCTools.lha Buffer size: 128k Connected to uhc.a1k.org:443 TLSv1.3 connection is using TLS_CHACHA20_POLY1305_SHA256 Sent GET request! Server response: 200 OK Receiving file: 0% - [oooooooooooooooooooooooooooooooo] - 100% (53.23kB) 53.23kB received in 1.07s - 49.42kB/s Additional usage details: - A HTTP proxy can be used by setting the ENV-variable http_proxy to the URL of the proxy. - Using aget for HTTPS or Gemini requires AmiSSL 4+. Relevant implementation details: It uses double buffering and asynchronous writes - downloads from the network to one buffer at the same time as it writes the other buffer to disk. This more or less removes the effect seek times and slow disks has on the download speed (as long as the disk is at least as fast as the network). This will be most effective if you have a real DMA disk controller, as then the disk writes taking place at the same time as the network download will steal a minimum of CPU time from the TCP/IP stack.