2024-01-28 20:18:18 +03:00
# lonelyradio
2024-07-12 23:25:36 +03:00
Broadcast lossless audio over the internet.
2024-01-28 20:18:18 +03:00
Decodes audio streams using [symphonia ](https://github.com/pdeljanov/Symphonia ).
2024-05-20 07:48:32 +03:00
Optionally transcodes audio into and from FLAC using [flacenc-rs ](https://github.com/yotarok/flacenc-rs/ ) and [claxon ](https://github.com/ruuda/claxon ).
2024-07-12 23:25:36 +03:00
## Install server
2024-05-20 07:48:32 +03:00
```shell
2024-07-12 23:25:36 +03:00
cargo install --git https://github.com/ivabus/lonelyradio --tag 0.6.0 lonelyradio
2024-05-20 07:48:32 +03:00
```
2024-07-12 23:25:36 +03:00
## Run
2024-03-15 18:49:17 +03:00
2024-07-12 23:25:36 +03:00
```
lonelyradio < MUSIC_FOLDER >
2024-03-15 18:49:17 +03:00
```
2024-07-12 23:25:36 +03:00
All files (recursively) will be shuffled and played back. Public log will be displayed to stdout, private to stderr.
2024-01-28 20:18:18 +03:00
2024-07-12 23:25:36 +03:00
Look into `--help` for detailed info
2024-01-28 20:18:18 +03:00
2024-07-12 23:25:36 +03:00
### Clients
2024-01-28 20:18:18 +03:00
2024-07-12 23:25:36 +03:00
#### monoclient-x
2024-01-28 20:18:18 +03:00
2024-07-12 23:25:36 +03:00
[monoclient-x ](./monoclient-x ) is a SwiftUI player for lonelyradio for iOS/iPadOS/macOS
2024-01-28 20:18:18 +03:00
2024-07-12 23:25:36 +03:00
##### Build
2024-05-16 08:28:18 +03:00
2024-07-12 23:25:36 +03:00
1. Build monolib with [xcframework ](https://github.com/Binlogo/cargo-xcframework )
2. Build monoclient-x using Xcode or `xcodebuild`
2024-05-20 07:48:32 +03:00
2024-07-12 23:25:36 +03:00
#### monoclient-s
[monoclient-s ](./monoclient-s ) is a GUI player for lonelyradio built with [Slint ](https://slint.dev )
2024-05-20 07:48:32 +03:00
2024-01-28 20:18:18 +03:00
2024-07-12 23:25:36 +03:00
##### Install
2024-02-25 15:40:23 +03:00
```shell
2024-07-12 23:25:36 +03:00
cargo install --git https://github.com/ivabus/lonelyradio --tag 0.6.0 monoclient-s
2024-01-28 20:18:18 +03:00
```
2024-07-12 23:25:36 +03:00
You may need to install some dependencies for Slint.
Desktop integration will be added later.
##### Build
```
cargo build -p monoclient-s
```
You may need to install some dependencies for Slint.
#### monoclient
[monoclient ](./monoclient ) is a CLI player for lonelyradio that uses [monolib ](./monolib )
2024-05-20 07:48:32 +03:00
```shell
2024-07-12 23:25:36 +03:00
monoclient < SERVER > :< PORT >
2024-05-20 07:48:32 +03:00
```
2024-07-12 23:25:36 +03:00
##### Install monoclient
2024-05-20 07:48:32 +03:00
2024-07-12 23:25:36 +03:00
```shell
cargo install --git https://github.com/ivabus/lonelyradio --tag 0.6.0 monoclient
```
2024-03-04 16:15:15 +03:00
2024-07-12 23:25:36 +03:00
# Other things
2024-03-04 16:15:15 +03:00
2024-05-20 07:48:32 +03:00
[monoloader ](./monoloader ) is a tool, that allows you to download individual audio tracks from lonelyradio-compatible servers.
[monolib ](./monolib ) provides a C API compatible with lonelyradio for creating custom clients.
2024-07-12 23:25:36 +03:00
The full protocol specification will be available later. If you would like to learn more about it now, please refer to the monolib.
2024-05-20 07:48:32 +03:00
#### monolib API stability
As lonelyradio has not yet reached its first major release, the API may (and will) break at any point.
### Microphone server
2024-07-12 23:25:36 +03:00
Experimental (and uncompatible with versions 0.6+) server (lonelyradio-compatible) for streaming audio from your microphone is available in the [microserve ](./microserve ) crate.
2024-03-15 18:31:06 +03:00
2024-01-28 20:18:18 +03:00
## License
2024-05-20 07:48:32 +03:00
lonelyradio, monolib and monoclient, as well as all other crates in this repository, are licensed under the terms of the [MIT license ](./LICENSE ).