Include (or ship) recommended integration layer(s) for various HTTP clients
Many users will want to use Tor to make https requests. Doing this right now is quite a performance involving TlsConnector
s and so on. We have arti-client/examples/hyper.rs
and it is already complex and doesn't do TLS.
Integration layers we ought to provide:
-
hyper (done in !355 (merged) et preq) -
reqwest (may need new upstream hook) -
ureq (may need new upstream hook)
We should provide a nice way to do this.
Ideas:
-
New crate
arti_http_client[_hyper]
which contains the appropriate glue, with its own example. -
IMO we should not have any example which supports HTTP but not HTTPS. If we find it is difficult to provide an HTTPS-capable example we need to improve our provided APIs.
-
Talk to upstream of
ureq
and maybe that would let us provide a nice simple API there. Perhaps this is a separate crate or a separatefeature
of thearti_http_client
crate.
See also:
- #286 in which I argue that we should provide a sync API
- #285 (closed) where I discuss config, of which scheme this new crate would need to partake
- #284 (closed) whihc contains opinions about client construction which may be relevant
Adding this API is not in itself an API break but building it may highlight API problems in arti_client
, so I have added the "API break" tag.