44 lines
1.4 KiB
Markdown
44 lines
1.4 KiB
Markdown
# Rust Music Player
|
|
**Rust Music Player** (rmp), as the name suggests, is a music player written in rust using a terminal interface.
|
|
|
|
This project is heavily inspired by [Music on Console](https://github.com/jonsafari/mocp)
|
|
|
|
## Usage
|
|
Below are some examples of commandline arguments.
|
|
If you are using cargo, add `cargo run --` before any arguments.
|
|
|
|
`rmp`
|
|
- Run the interface with the server in the background
|
|
|
|
`rmp -s`
|
|
- Run only the server
|
|
|
|
`rmp -c`
|
|
- Run only the client
|
|
|
|
`rmp -x`
|
|
- Kill the server
|
|
|
|
`rmp --help`
|
|
- For more help
|
|
|
|
## Architecture
|
|
**rmp** uses a client/server architecture with interprocess communication. The interface is independent from the audio playback.
|
|
|
|
This has several benefits:
|
|
- You can close the interface and keep the music playing
|
|
- Controlling the backend is easy to implement using commandline arguments, which makes scripting easier
|
|
- The interface stays responsive
|
|
- You can have multiple interfaces open at the same time, if needed
|
|
|
|
## Requirements
|
|
Opus decoding depends on [libopus](https://opus-codec.org/) at the moment.
|
|
|
|
Using apt: `sudo apt install libopus0`
|
|
|
|
## Platform compability
|
|
Compability is tested only for linux, but all of the crates used (`rodio`, `crossterm`, `interprocess`)
|
|
should work cross-platform.
|
|
|
|
There is some platform-specific code, which is only implemented for unix-like systems at the moment. See [os_unix.rs](src/os_unix.rs) for more info.
|