RSpotify is a wrapper for the Spotify Web API, inspired by spotipy. It includes support for all the authorization flows, and helper functions for all endpoints.
To learn how to use RSpotify, please refer to the documentation. There are some examples that may be useful as well.
Please see the changelog for a release history and indications on how to upgrade from one version to another.
If you find any problems or have suggestions about this crate, please submit an issue. Moreover, any pull request, code review and feedback are welcome.
We use GitHub Actions to make sure the codebase is consistent (cargo fmt) and continuously tested (cargo test). We try to keep comments at a maximum of 80 characters of length (which isn't automatically checked by cargo fmt) and code at 120.
RSpotify uses maybe_async to switch between async and blocking clients, which is triggered inside Cargo.toml. So that must be taken into account when building rspotify. Read the Configuration section in the docs for more information about how to build with custom TLS implementations, and more.
client-reqwest is used by default. It should be as easy as
$ cargo buildclient-ureq is also available as the blocking interface, which compiles RSpotify with ureq (a TLS has to be specified as well):
$ cargo build --no-default-features --features client-ureq,ureq-rustls-tlsNotice that you can't build rspotify with all features like this:
$ cargo build --all-featuresBecause in order to switch between clients, the different clients have to implement the same base trait in src/http/mod.rs, so if you build with all features, you'll get duplicate definitions error. As every coin has two sides, you can only have one side at a time, not all sides of it.
RSpotify supports building for the wasm32-unknown-unknown target. It should be as easy as:
$ cargo build --target wasm32-unknown-unknownRefer to the documentation for more details


