8 releases (5 breaking)
0.6.1 | Oct 20, 2023 |
---|---|
0.6.0 | Sep 13, 2023 |
0.5.0 | Jan 27, 2023 |
0.4.1 | Sep 14, 2022 |
0.1.0 | Apr 21, 2022 |
#116 in Audio
46KB
1K
SLoC
Radiobrowser Lib Rust
Client library for radio-browser.info and other radio-browser-rust servers
Features
- Async / Blocking API
- Clean query api with builder pattern
- Countries, languages, tags, stations, serverconfig
- Server statistics
- Station actions: click, vote
- Add streams
Crate features
- "blocking" - support for non-async (blocking) mode
- "chrono" - return DateTime objects instead of strings
Getting started (Blocking)
Example:
It needs to have the feature "blocking" enabled. Cargo.toml entry:
radiobrowser = { version = "*", features = ["blocking"] }
use radiobrowser::blocking::RadioBrowserAPI;
use std::error::Error;
fn main() -> Result<(), Box<dyn Error>> {
let mut api = RadioBrowserAPI::new()?;
let servers = RadioBrowserAPI::get_default_servers()?;
println!("Servers: {:?}", servers);
let status = api.get_server_status()?;
println!("Status: {:?}", status);
let countries = api.get_countries().send()?;
println!("Countries: {:?}", countries);
let stations = api.get_stations().name("jazz").send()?;
println!("Stations: {:?}", stations);
Ok(())
}
Getting started (Async)
Cargo.toml entry
radiobrowser = "*"
Example:
use radiobrowser::RadioBrowserAPI;
use radiobrowser::StationOrder;
use std::error::Error;
#[async_std::main]
async fn main() -> Result<(), Box<dyn Error>> {
let mut api = RadioBrowserAPI::new().await?;
let stations = api
.get_stations()
.name("jazz")
.reverse(true)
.order(StationOrder::Clickcount)
.send()
.await?;
println!("Stations found: {}", stations?.len());
Ok(())
}
Usage
Documentation is at https://docs.rs/radiobrowser
License
This project is MIT licensed.
Dependencies
~14–29MB
~497K SLoC