Skip to content
/ dobro Public

Unofficial Pandora terminal client written in Rust

License

Notifications You must be signed in to change notification settings

danielrs/dobro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status

dobro

Unofficial Pandora terminal client written in Rust.

Building

Required libraries

Some modules of the terminal client uses modules that depend on some C libraries for dynamic linking.

  • earwax: Requires ffmpeg 2.8.
  • ao-rs: Requires libao 1.1.

Compiling

If everything is installed, a simple cargo run with the nightly compiler should suffice for testing the player.

What's going on right now?

This an app that I'm building during my free time. It will consist of the following main components (most to least important):

  • API interaction (pandora-rs).
  • Audio playback.
  • Text-based user interface (TUI).
  • User Settings.

Local crates for components can be found at src/lib.

API Interaction (pandora-rs)

Most of the work for this module is already done. It interacts with the API in a very rusty way using hyper; all the requests/responses are serialized/deserialized using serde and serde_json. The pandora-rs module interacts with the API found here.

Audio playback (earwax, ao-rs)

For audio decoding I made a small C library with Rust bindings based on ffmpeg 2.8 called Earwax. For audio playpack I'm using libao with safe ffi bindings.

TUI

Simple interface made with ncurses. This would be the "main" Dobro application, and it builds on the lower-level components.

User settings

After everything else is done. Should load from simple configuration files (preferably in toml format).

About

Unofficial Pandora terminal client written in Rust

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages