mirror of
https://github.com/tribufu/rust-gamedig
synced 2026-05-06 07:17:27 +00:00
59 lines
2.4 KiB
Markdown
59 lines
2.4 KiB
Markdown
# rust-gamedig [](https://github.com/CosminPerRam/rust-gamedig/actions) [](https://crates.io/crates/gamedig) [](https://crates.io/crates/gamedig) [](LICENSE.md)
|
|
|
|
**rust-GameDig** is a games/services server query library that can fetch the availability and/or details of those, this library brings what **[node-GameDig](https://github.com/gamedig/node-gamedig)** does, to pure Rust!
|
|
|
|
MSRV is `1.56.1` and the code is cross-platform.
|
|
|
|
## Games/Services/Protocols List
|
|
To see the supported (or the planned to support) games/services/protocols, see [GAMES](GAMES.md), [SERVICES](SERVICES.md) and [PROTOCOLS](PROTOCOLS.md) respectively.
|
|
|
|
## Usage
|
|
Just pick a game/service/protocol, provide the ip and the port (can be optional) (some use a special query port) then query on it.
|
|
Team Fortress 2 query example:
|
|
```rust
|
|
use gamedig::games::tf2;
|
|
|
|
fn main() {
|
|
let response = tf2::query("127.0.0.1", None); //or Some(27015), None is the default protocol port
|
|
match response {
|
|
Err(error) => println!("Couldn't query, error: {error}"),
|
|
Ok(r) => println!("{:#?}", r)
|
|
}
|
|
}
|
|
```
|
|
Response (note that some games have a different structure):
|
|
```json5
|
|
{
|
|
protocol: 17,
|
|
name: "Team Fortress 2 Dedicated Server.",
|
|
map: "ctf_turbine",
|
|
game: "tf2",
|
|
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",
|
|
//....
|
|
]
|
|
}
|
|
```
|
|
|
|
To see more examples, see the [examples](examples) folder.
|
|
|
|
## Documentation
|
|
The documentation is available at [docs.rs](https://docs.rs/gamedig/latest/gamedig/).
|
|
Curious about the history and what changed between versions? Check out the [CHANGELOG](CHANGELOG.md) file.
|
|
|
|
## Contributing
|
|
If you want see your favorite game/service being supported here, open an issue, and I'll prioritize it (or do a pull request if you want to implement it yourself)!
|