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

Replace out-dated reqwest dependency #47

Closed
dmfutcher opened this issue Aug 13, 2020 · 4 comments
Closed

Replace out-dated reqwest dependency #47

dmfutcher opened this issue Aug 13, 2020 · 4 comments
Assignees
Milestone

Comments

@dmfutcher
Copy link
Owner

New version of reqwest, v0.10 (https://github.com/seanmonstar/reqwest/releases/tag/v0.10.0), has breaking changes and will require code changes to use.

Not urgent but would like to keep up to date. Potential to help with #36.

@dmfutcher dmfutcher added this to the 1.0.2 milestone Aug 13, 2020
@agersant
Copy link
Contributor

agersant commented Dec 8, 2020

Tangentially related to this issue. I noticed that because of its reliance on reqwest, rustfm-scrobble has quite a large dependency tree which pulls all sorts of crates from the async ecosystem.

This can be problematic for two sets of users:

  • Users trying to keep their own dependencies minimal.
  • Users with dependencies relying a different version of hyper. Not breaking per-se, but building TWO versions of hyper and friends can bloat builds a lot.

I am going to start working on a version of rustfm-scrobble using a more minimal (blocking) HTTP client like ureq. Which forms of this contribution would you be interested in?

A. As a full replacement for reqwest
B. Behind a feature-gate, keeping reqwest as the default
C. Not interested at all

Thanks!

Edit: I forgot to mention why I think there is little value in having this crate being part of the async ecosystem.

  1. Async is useful to scale beyond a few hundred concurrent requests. Programs using rustfm-scrobble to make this many requests at the same time are most likely a very small niche, compared to programs who operate on behalf of a user.
  2. Async frameworks have some form of block_on() method to handle long blocking operations without compromising their scheduling. This makes it possible to use synchronous code in an async context. But the opposite is not true: there is no working with async without tokio or async-std.

@dmfutcher
Copy link
Owner Author

Hey @agersant

Agree there's no need for async here. Happy to review a PR replacing reqwest entirely.

@dmfutcher dmfutcher changed the title reqwest v0.10 Replace out-dated reqwest dependency Dec 8, 2020
@dmfutcher
Copy link
Owner Author

Released in v1.1.0. Thanks for again for sorting this out @agersant!

@agersant
Copy link
Contributor

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants