#api #query-api #api-bindings

radiobrowser

适用于radiobrowser兼容服务器的客户端库,自动回退到其他可用服务器

8个版本 (5个重大更新)

0.6.1 2023年10月20日
0.6.0 2023年9月13日
0.5.0 2023年1月27日
0.4.1 2022年9月14日
0.1.0 2022年4月21日

音频 中排名第96

每月下载量:27

MIT许可

46KB
1K SLoC

Radiobrowser Lib Rust

radio-browser.info和其他radio-browser-rust服务器的客户端库

功能

  • 异步/阻塞API
  • 使用构建器模式的干净查询API
  • 国家、语言、标签、电台、服务器配置
  • 服务器统计
  • 电台操作:点击、投票
  • 添加流

包功能

  • "blocking" - 支持非异步(阻塞)模式
  • "chrono" - 返回DateTime对象而不是字符串

入门(阻塞)

示例

需要启用"blocking"功能。Cargo.toml条目

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(())
}

入门(异步)

Cargo.toml条目

radiobrowser = "*"

示例

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(())
}

用法

文档在 https://docs.rs/radiobrowser

许可

本项目采用MIT许可。

依赖项

~14–30MB
~509K SLoC