I am a C software engineer who wants to learn Rust a little bit better. I need to implement a project that might be a great fit for rust.
Here is a problem - fast campus network and a slow internet connection. Users download large repository files again and again. I would like to add a proxy that accepts http/https requests from users, opens a new connection to remote server starts downloading while serving the data to user and saving it to the disk at the same time. But if the file is at the disk cache already then serve it from there (the same way as what ngingx or apache would do) without download from internet.
I would like to implement it using Rust technologies in a clean efficient way. It seems that using async IO might be a good fit here.
Any pointers what packages/technologies I should use for it? Are there any tutorials or example projects that cover similar tasks?