Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add features to reduce dependencies #46

Closed
ufoscout opened this issue Aug 12, 2021 · 6 comments
Closed

Add features to reduce dependencies #46

ufoscout opened this issue Aug 12, 2021 · 6 comments
Labels
enhancement New feature or request stale

Comments

@ufoscout
Copy link

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?

@alexliesenfeld
Copy link
Owner

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.

@ducaale
Copy link

ducaale commented Aug 13, 2021

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

@ducaale
Copy link

ducaale commented Oct 11, 2021

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.

@vikanezrimaya
Copy link

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)

@github-actions
Copy link

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

@github-actions github-actions bot added the stale label Apr 18, 2023
@github-actions
Copy link

github-actions bot commented May 2, 2023

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

@github-actions github-actions bot closed this as completed May 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request stale
Projects
None yet
Development

No branches or pull requests

4 participants