Closed ufoscout closed 1 year ago
Thanks for creating this issue! By looking at the dependency tree, I think it should be possible to reduce the number of dependencies that are required for regular usage (i.e., non-standalone mode) by about 30%. Most dependencies seem to be added by isahc
and async-std
(coming in though async-object-pool
). I'll look into it.
Making isahc optional would also let users remove OpenSSL from their dependency tree since it doesn't play well with rust-cross.
Would it maybe be possible to reduce the dependencies using cargo features? For example, I guess isahc and some other "client-side" libraries are used only with a remote server; could they be made optional and enabled with a remote feature?
After skimming the code a little bit, I don't think ishac
could be made optional in non-standalone mode since it is used to ping the test server. However, I think that a minimal client library such as ureq could be used for pinging instead.
Another approach is to replace every instance of isahc
with ureq
but the latter doesn't support async requests so I don't know if that is desirable.
Could isahc be potentially replaced by hyper's client capabilities, seeming as the code, at least in the ping case, is async? (see src/api/adapter/mod.rs#L84-L108)
This issue is stale because it has been open for 30 days with no activity.
This issue was closed because it has been inactive for 14 days since being marked as stale.
With my team we are evaluating
httpmock
; it really looks like a great project. Anyway, our test compile-time increased substantially due to its number of dependencies. Would it maybe be possible to reduce the dependencies using cargo features? For example, I guessisahc
and some other "client-side" libraries are used only with a remote server; could they be made optional and enabled with aremote
feature?