The parallel implementation is fairly inefficient. The goal is to open as many API requests as possible at once as each response can take several seconds. However, this is bottlenecked by the upload speed anyway. A better way to do this would be to asynchronously make API requests.
Had a go at implementing this, but async is still in its early stages in Rust. I will be taking another look at this when async/await support rolls out.
The parallel implementation is fairly inefficient. The goal is to open as many API requests as possible at once as each response can take several seconds. However, this is bottlenecked by the upload speed anyway. A better way to do this would be to asynchronously make API requests.