No description
Find a file
2023-03-03 18:11:40 +02:00
.github/workflows Changed name of the CI file 2022-11-25 19:56:43 +02:00
examples [Protocol] GameSpy 1 support with the games Unreal Tournament and Battlefield 1942. (#9) 2023-03-03 17:45:18 +02:00
src [Games] Use port.unwrap_or instead of matching it 2023-03-03 18:02:54 +02:00
.gitignore Removed examples, added a master_querant change gather_settings to none (representing all) 2022-10-22 23:50:32 +03:00
Cargo.toml [Crate] Bump version to 0.2.1. 2023-03-03 18:09:17 +02:00
CHANGELOG.md [Crate] Add preliminary changelog 2023-03-03 18:11:40 +02:00
GAMES.md [Protocol] GameSpy 1 support with the games Unreal Tournament and Battlefield 1942. (#9) 2023-03-03 17:45:18 +02:00
LICENSE.md [Crate] Bump version to 0.2.1. 2023-03-03 18:09:17 +02:00
PROTOCOLS.md [Protocol] GameSpy 1 support with the games Unreal Tournament and Battlefield 1942. (#9) 2023-03-03 17:45:18 +02:00
README.md [Crate] Hyperlink tf2 2023-03-03 17:55:23 +02:00
SERVICES.md 7 Days To Die support. 2022-11-25 20:10:16 +02:00

rust-GameDig CI Latest Version Crates.io License:MIT

Warning: This project goes through frequent API breaking changes and hasn't been thoroughly tested.

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 does, to pure Rust!

Minimum Supported Rust Version 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, SERVICES and PROTOCOLS respectively.

Usage

Just pick a game/service/protocol, provide the ip and the port (be aware that some game servers use a separate port for the info queries, the port can also be optional if the server is running the default ports) then query on it.
Team Fortress 2 query example:

use gamedig::games::tf2;

fn main() {
    let response = tf2::query("127.0.0.1", 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)
    }
}

Response (note that some games have a different structure):

{
  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",
    //....
  ]
}

To see more examples, see the examples folder.

Documentation

The documentation is available at docs.rs.
Curious about the history and what changed between versions? Check out the CHANGELOG 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)!