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 网络编程
每月81次 下载
345KB
7.5K SLoC
rust-GameDig
查询游戏服务器/服务的快速库。
此库将 node-GameDig 的功能(不仅限于此)带到了纯 Rust 中!
警告:此项目经历了频繁的 API 破坏性更改,并且尚未经过彻底测试。
社区
在此处查看 GameDig 社区 Discord 服务器 here。
请注意,它不是 GitHub 问题的替代品,如果您在库中发现了问题或希望请求功能,最好在此处而不是在 Discord 上进行。
用法
最低支持的 Rust 版本是 1.65.0
,并且代码是跨平台的。
选择一个游戏/服务/协议(检查 GAMES、SERVICES 和 PROTOCOLS 文件以查看当前支持的选项),提供 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