#server #quake-world #quake #async-parallel

masterstat

从 QuakeWorld 主服务器获取服务器地址

4 个版本

0.1.3 2024 年 5 月 4 日
0.1.2 2024 年 4 月 25 日
0.1.1 2024 年 4 月 25 日
0.1.0 2024 年 4 月 25 日

#4 in #async-parallel

41 每月下载量

MIT 许可证

11KB
178 行代码(不含注释)

masterstat Test crates docs.rs

从 QuakeWorld 主服务器获取服务器地址。

安装

cargo add masterstat

用法

从单个主服务器获取服务器地址

use std::time::Duration;

let master = "master.quakeworld.nu:27000";
let timeout = Some(Duration::from_secs(2));

match masterstat::server_addresses(&master, timeout) {
    Ok(addresses) => { println!("found {} server addresses", addresses.len()) },
    Err(e) => { eprintln!("error: {}", e); }
}

从多个主服务器获取服务器地址(异步,并行)

use std::time::Duration;

async fn test() {
  let masters = ["master.quakeworld.nu:27000", "master.quakeservers.net:27000"];
  let timeout = Some(Duration::from_secs(2));
  let server_addresses = masterstat::server_addresses_from_many(&masters, timeout).await?;
}

另请参阅

依赖项

~3.5–5.5MB
~89K SLoC