14 个不稳定版本 (5 个破坏性更新)

0.5.1 2024年5月12日
0.5.0 2024年3月15日
0.4.1 2023年10月12日
0.3.0 2023年7月18日
0.0.6 2022年11月28日

#269 in 网络编程

Download history 8/week @ 2024-04-26 12/week @ 2024-05-03 227/week @ 2024-05-10 37/week @ 2024-05-17 9/week @ 2024-05-24 4/week @ 2024-05-31 10/week @ 2024-06-07 6/week @ 2024-06-14 1/week @ 2024-06-28 11/week @ 2024-07-05 10/week @ 2024-07-19 63/week @ 2024-07-26 8/week @ 2024-08-02

每月81次 下载

MIT 许可证

345KB
7.5K SLoC

rust-GameDig

查询游戏服务器/服务的快速库。
此库将 node-GameDig 的功能(不仅限于此)带到了纯 Rust 中!

警告:此项目经历了频繁的 API 破坏性更改,并且尚未经过彻底测试。

社区

在此处查看 GameDig 社区 Discord 服务器 here
请注意,它不是 GitHub 问题的替代品,如果您在库中发现了问题或希望请求功能,最好在此处而不是在 Discord 上进行。

用法

最低支持的 Rust 版本是 1.65.0,并且代码是跨平台的。

选择一个游戏/服务/协议(检查 GAMESSERVICESPROTOCOLS 文件以查看当前支持的选项),提供 IP 地址和端口号(请注意,一些游戏服务器使用单独的端口号进行信息查询,如果服务器运行默认端口,端口号也可以是可选的),然后在上面进行查询。

Team Fortress 2 查询示例

use gamedig::games::teamfortress2;

fn main() {
    let response = teamfortress2::query(&"127.0.0.1".parse().unwrap(), None);
    // None is the default port (which is 27015), could also be Some(27015)

    match response { // Result type, must check what it is...
        Err(error) => println!("Couldn't query, error: {}", error),
        Ok(r) => println!("{:#?}", r)
    }
}

响应(注意,有些游戏的结构可能不同)

{
  protocol: 17,
  name: "Team Fortress 2 Dedicated Server.",
  map: "ctf_turbine",
  game: "tf2",
  appid: 440,
  players_online: 0,
  players_details: [],
  players_maximum: 69,
  players_bots: 0,
  server_type: Dedicated,
  has_password: false,
  vac_secured: true,
  version: "7638371",
  port: Some(27015),
  steam_id: Some(69753253289735296),
  tv_port: None,
  tv_name: None,
  keywords: Some(
  "alltalk,nocrits"
  ),
  rules: [
    "mp_autoteambalance"
    :
    "1",
    "mp_maxrounds"
    :
    "5",
    //....
  ]
}

想看更多示例?请查看 examples 文件夹。

文档

文档可在 docs.rs 找到。
对历史版本之间的变化感兴趣吗?所有信息都在变更日志文件中。

贡献

如果你希望看到你喜欢的游戏/服务在这里得到支持,请打开一个问题,我会将其优先处理(或者如果你想自己实现,可以发起一个pull request)!

在贡献之前,请阅读贡献指南

依赖项

~6–17MB
~305K SLoC