Coder Social home page Coder Social logo

rspotify's Introduction

Continuous Integration License Crates.io Docs

RSpotify

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.

Changelog

Please see the changelog for a release history and indications on how to upgrade from one version to another.

Contributing

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.

Code Guide

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.

Trait Hierarchy

Crate Hierarchy

Building

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 build

client-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-tls

Notice that you can't build rspotify with all features like this:

$ cargo build --all-features

Because 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.

WASM support

RSpotify supports building for the wasm32-unknown-unknown target. It should be as easy as:

$ cargo build --target wasm32-unknown-unknown

Refer to the documentation for more details

License

MIT

rspotify's People

Contributors

ramsayleung avatar marioortizmanero avatar kstep avatar sabrinajewson avatar dependabot[bot] avatar rigellute avatar sydpy avatar eladyn avatar hrkfdn avatar icewind1991 avatar dusterthefirst avatar ekuinox avatar qluxzz avatar andrzejressel avatar aome510 avatar braincow avatar ljufa avatar jacobmichels avatar ritiek avatar oliveroneill avatar sputnick1124 avatar marekkon5 avatar koffeinflummi avatar gelendir avatar domwilliams0 avatar caass avatar epwalsh avatar channingbabb avatar bkitor avatar merisbahti avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.