2024-01-28 20:18:18 +03:00
# lonelyradio
2024-05-20 07:48:32 +03:00
Broadcast 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 ).
## Installation
### Install music server
```shell
cargo install --git https://github.com/ivabus/lonelyradio --tag 0.5.0 lonelyradio
```
### Install CLI client
2024-03-15 18:49:17 +03:00
```shell
2024-05-20 07:48:32 +03:00
cargo install --git https://github.com/ivabus/lonelyradio --tag 0.5.0 monoclient
2024-03-15 18:49:17 +03:00
```
2024-05-20 07:48:32 +03:00
### Install GUI (Slint) client
2024-01-28 20:18:18 +03:00
```shell
2024-05-20 07:48:32 +03:00
cargo install --git https://github.com/ivabus/lonelyradio --tag 0.5.0 monoclient-s
2024-01-28 20:18:18 +03:00
```
## Run
```
2024-05-20 07:48:32 +03:00
lonelyradio [-a < ADDRESS:PORT > ] [-p|--public-log] [-w|--war] [-m|--max-samplerate M] [--xor-key-file FILE] [--no-resampling] [-f|--flac] < MUSIC_FOLDER >
2024-01-28 20:18:18 +03:00
```
2024-03-04 16:15:15 +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-05-16 08:28:18 +03:00
`-m|--max-samplerate M` will resample tracks which samplerate exceeds M to M
2024-05-20 07:48:32 +03:00
`--xor-key-file FILE` will XOR all outgoing bytes looping through FILE
`-f|--flac` will enable (experimental) FLAC compression
2024-01-28 20:18:18 +03:00
### Clients
2024-05-20 07:48:32 +03:00
[monoclient ](./monoclient ) is a recommended CLI player for lonelyradio that uses [monolib ](./monolib )
2024-02-25 15:40:23 +03:00
```shell
2024-03-13 20:48:10 +03:00
monoclient < SERVER > :< PORT >
2024-01-28 20:18:18 +03:00
```
2024-05-20 07:48:32 +03:00
[monoclient-s ](./monoclient-s ) is a experimental GUI player for lonelyradio built with [Slint ](https://slint.dev )
```shell
monoclient-s
```
Desktop integration will be added later.
2024-03-04 16:15:15 +03:00
### Other clients
2024-03-14 20:50:01 +03:00
SwiftUI client is availible in [platform ](./platform ) directory.
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.
#### monolib API stability
As lonelyradio has not yet reached its first major release, the API may (and will) break at any point.
### Microphone server
Experimental 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 ).