httpmock icon indicating copy to clipboard operation
httpmock copied to clipboard

Add features to reduce dependencies

Open ufoscout opened this issue 4 years ago • 4 comments

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 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?

ufoscout avatar Aug 12 '21 10:08 ufoscout

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.

alexliesenfeld avatar Aug 12 '21 18:08 alexliesenfeld

Making isahc optional would also let users remove OpenSSL from their dependency tree since it doesn't play well with rust-cross.

ducaale avatar Aug 13 '21 06:08 ducaale

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.

ducaale avatar Oct 11 '21 17:10 ducaale

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)

vikanezrimaya avatar Feb 21 '22 00:02 vikanezrimaya

This issue is stale because it has been open for 30 days with no activity.

github-actions[bot] avatar Apr 18 '23 01:04 github-actions[bot]

This issue was closed because it has been inactive for 14 days since being marked as stale.

github-actions[bot] avatar May 02 '23 01:05 github-actions[bot]