2 个版本

0.13.2 2024 年 3 月 8 日
0.13.1 2024 年 3 月 8 日

#243 in 音频

MIT 许可证

105KB
2.5K SLoC

Continuous Integration License Crates.io Docs

RSpotify

RSpotify 是 Spotify Web API 的包装器,灵感来源于 spotipy。它支持所有 授权流程,并提供所有端点的辅助函数。

要了解如何使用 RSpotify,请参阅 文档。还有一些 示例 可能也很有用。

变更日志

请查看 变更日志 了解发布历史和如何升级到另一个版本。

贡献

如果您发现此软件包有任何问题或对此有任何建议,请提交问题。此外,欢迎任何 pull request、代码审查和反馈。

代码指南

我们使用 GitHub Actions 确保代码库的一致性(cargo fmt)和持续测试(cargo test)。我们尽量将注释长度控制在 80 个字符以内(这不是由 cargo fmt 自动检查的),并将代码长度控制在 120。

特质层次结构

软件包层次结构

构建

RSpotify 使用 maybe_async 在异步和阻塞客户端之间切换,该功能在 Cargo.toml 中触发。因此,在构建 rspotify 时必须考虑这一点。请参阅文档中的配置部分,以获取有关如何使用自定义 TLS 实现构建以及更多信息的详细信息。

默认使用 client-reqwest。这应该像这样简单

$ cargo build

client-ureq 也可以用作 blocking 接口,它使用 ureq(还需要指定 TLS)编译 RSpotify

$ cargo build --no-default-features --features client-ureq,ureq-rustls-tls

请注意,您不能像这样构建包含所有功能的 rspotify

$ cargo build --all-features

因为为了在客户端之间切换,不同的客户端必须在 src/http/mod.rs 中实现相同的基 trait,因此如果您使用所有功能进行构建,您将得到 duplicate definitions 错误。毕竟,每一枚硬币都有两面,一次只能选择一面,而不是所有面。

WASM 支持

RSpotify 支持构建 wasm32-unknown-unknown 目标。这应该像这样简单

$ cargo build --target wasm32-unknown-unknown

有关更多详细信息,请参阅 文档

许可

MIT

依赖项

~1.7–2.7MB
~52K SLoC