-
Notifications
You must be signed in to change notification settings - Fork 11
Description
Most modern applications require some kind of networking functionality to fetch or upload some data to the internet, so it makes sense to add a networking module to this library.
This should be somewhat aligned with what is available in Chromium and be based on existing callbacks/threading building blocks, but also probably simplified to provide basic functionality that is easy to use.
Some functionality that should be covered:
- Fetching data from network
- Handling multiple requests at the same time
- HTTP/HTTPS support, optionally more
GET,HEAD, possiblyPOST
- Ability to simply make a request and get response with all headers, data etc. in a single call
- Ability to make a request and get more advanced feedback (e.g. call on response started, streaming/per-chunk data writes instead of single call at the end, etc.)
- Cancellation
This should probably be based on libcurl. The alternative would be to use Boost.Beast but its unsure if that would provide meaningful benefits with possibility of more complicated setup?
It's something to consider whether this should be a part of "core" library or a separate module that one can extra-depend on (especially since it will introduces a new dependency (on curl/boost.beast) and it's not strictly part of //base in Chromium itself).