You could have easily found that out for yourself:
Just integrate one of
https://nimble.directory/search?query=progress
into
https://nim-lang.org/docs/httpclient.html#progress-reporting
For example:
import std/[asyncdispatch, httpclient]
import progress
const nBytes = 1024 * 1024 * 100
var bar = newProgressBar(total = nBytes)
proc onProgressChanged(total, progress, speed: BiggestInt) {.async.} =
bar.set(progress.int)
#echo("Downloaded ", progress, " of ", total)
#echo("Current rate: ", speed div 1000, "kb/s")
proc asyncProc() {.async.} =
var client = newAsyncHttpClient()
client.onProgressChanged = onProgressChanged
bar.start()
discard await client.getContent("https://speed.hetzner.de/100MB.bin")
bar.finish()
waitFor asyncProc()