1. The documentation is lacking here. StreamingContext is a subclass of HttpContext, so every way you can reply with httpserver, you can reply with streamingserver. So this should already solve your use case. 2. Allow me to replace the term "symmetric" with term "identical". I hope this rephrasing makes the sentence more sensible. 3. Well no one can foretell all special file needs you have, and likely quite few are keen to code them for you (for free). If you are implementing some non-standard service, you have to be prepared to get your hands dirty and write some code yourself. 4. At least I can say that if you use 64 char set and 200 char long file names, files are protected by 1200 bit key, which is strong enough for you. Also hiding the real names used during file transfer should be a case easily handled by UI. Everything else is more complicated than letting reverse proxy serve the static files.
5\. Now that you reveal a bit more info about your intended use case, it comes to mind that there are also protocols that are especially designed for sharing large files. Check at least: <https://github.com/status-im/nim-libp2p> and <https://github.com/sergiotapia/torrentinim> Anyway, GuildenStern is a good platform for developing customized services that are optimized for particular use cases, thanks to its modularity that allows easy replacement of components, and architecture, that allows different kinds of servers to co-exist serving different ports. GuildenStern is not (just) a web server, it is a web server construction kit. With it, you will never paint yourself into the corner.