Comments (4)
Hey @agersant
Agree there's no need for async here. Happy to review a PR replacing reqwest
entirely.
from rustfm-scrobble.
Released in v1.1.0
. Thanks for again for sorting this out @agersant!
from rustfm-scrobble.
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.
- 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. - 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 withouttokio
orasync-std
.
from rustfm-scrobble.
Thanks!
from rustfm-scrobble.
Related Issues (20)
- Scrobble needs to impl Clone HOT 2
- Re-export Scrobbler in crate root
- Add unit tests HOT 3
- Add CI HOT 1
- Allow authenticating with session key
- Expose session key via Scrobbler
- Reject ScrobbleBatches larger than 50 items
- Comprehensive API documentation for all public exports HOT 1
- Expose ignored scrobbles in `BatchScrobbleResponse` HOT 1
- `Scrobbler` field getter methods HOT 1
- Improve example code
- Scrobble server? HOT 3
- Add Libre.fm support. HOT 24
- Remove deprecated methods for v1.0
- Update README.md HOT 1
- Async Client
- I can`t build the code HOT 3
- scrobble_batch fails if only one track is given HOT 4
- Does not work behind a proxy
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rustfm-scrobble.