jpochyla / psst
- вторник, 5 января 2021 г. в 00:25:28
Rust
Fast and multi-platform Spotify client with native GUI
Fast Spotify client with native GUI, without Electron, built in Rust. Very early in development, lacking in features, stability, and general user experience. It is being tested only on Mac so far, but aims for full Windows and Linux support. Contributions welcome!
Development build:
$ git submodule update --recursive --init
$ cargo build
Release build:
$ git submodule update --recursive --init
$ cargo build --release
$ cd psst-gui
$ cargo run
# Use cargo run --release for the release build.
Contributions are very welcome! Project structure:
/psst-bin
- Example CLI that plays a track. Credentials need to be configured in the code./psst-core
- Core library, takes care of Spotify TCP session, audio file retrieval, decoding, audio output, playback queue, etc./psst-gui
- GUI application built with Druid/psst-protocol
- Internal Protobuf definitions used for Spotify communication.This project would not exist without:
librespot
, the Open Source Spotify client library for Rust. Most of psst-core
is directly inspired by the ideas and code of librespot
, although with a few differences:
tokio
or other async
runtime. I just don't understand the async
jungle enough to port librespot
from pre-async/await tokio-0.1
code to anything both stable and modern.librespot-java
, instead of the older, channel-based approach in librespot
.druid
native GUI library for Rust.aspotify
asynchronous client library for the Spotify Web API.ncspot
cross-platform ncurses Spotify client written in Rust, using librespot
.