No description
Find a file
2022-12-31 14:32:35 +02:00
.github/workflows Changed name of the CI file 2022-11-25 19:56:43 +02:00
examples Minecraft bedrock support (#7) 2022-12-05 18:47:35 +02:00
src Change valve get_request_data return type from vec<u8> to Bufferer 2022-12-31 14:32:35 +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 Bumped version to 0.0.6! 2022-11-28 22:10:35 +02:00
CHANGELOG.md Make public functions that are meant to be used internally private. 2022-12-29 16:59:51 +02:00
GAMES.md Minecraft bedrock support (#7) 2022-12-05 18:47:35 +02:00
LICENSE.md Initial cargo file 2022-10-14 21:35:23 +03:00
PROTOCOLS.md Minecraft bedrock support (#7) 2022-12-05 18:47:35 +02:00
README.md Minecraft bedrock support (#7) 2022-12-05 18:47:35 +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

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!

MSRV is 1.58.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 (can be optional) (some use a special query port) then query on it.
Team Fortress 2 query example:

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):

{
  protocol: 17,
  name: "Team Fortress 2 Dedicated Server.",
  map: "ctf_turbine",
  game: "tf2",
  players: 0,
  players_details: [],
  max_players: 69,
  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: [
    ServerRule {
      name: "mp_autoteambalance",
      value: "1",
    }
    //....
  ]
}

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)!