No description
Find a file
dependabot[bot] ddd95be413
chore(deps): update webbrowser requirement in /crates/cli (#201)
Updates the requirements on [webbrowser](https://github.com/amodm/webbrowser-rs) to permit the latest version.
- [Release notes](https://github.com/amodm/webbrowser-rs/releases)
- [Changelog](https://github.com/amodm/webbrowser-rs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amodm/webbrowser-rs/compare/v0.8.12...v1.0.0)

---
updated-dependencies:
- dependency-name: webbrowser
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-28 22:43:27 +03:00
.github Add/Update badge 2024-04-28 19:29:06 +00:00
crates chore(deps): update webbrowser requirement in /crates/cli (#201) 2024-04-28 22:43:27 +03:00
.actrc [CI] Improvement and fixes (#161) 2023-11-25 00:34:26 +02:00
.gitignore [Crate] Add formatting (#22) 2023-03-14 10:31:37 +02:00
.pre-commit-config.yaml fix: various crate/clippy/ci changes (#181) 2024-01-18 15:34:05 +02:00
.rustfmt.toml [Crate] Bump rustfmt version to 1.6.0 (#69) 2023-07-10 18:32:17 +03:00
Cargo.toml Merge branch 'main' into feat/rootless-capture 2024-01-18 01:56:14 +00:00
CONTRIBUTING.md chore: reformat markdown files 2024-04-14 23:08:11 +03:00
GAMES.md fix: aliens vs predator specify year as there is also an older game not to be confused with 2024-04-28 22:28:41 +03:00
LICENSE.md Update license (#179) 2024-02-02 10:39:02 +02:00
PROTOCOLS.md feat: add Ark: Survival Ascended support (#197) 2024-04-21 18:53:33 +03:00
README.md chore: reformat markdown files 2024-04-14 23:08:11 +03:00
RESPONSES.md feat: add Ark: Survival Ascended support (#197) 2024-04-21 18:53:33 +03:00
SERVICES.md chore: reformat markdown files 2024-04-14 23:08:11 +03:00
VERSIONS.md chore: reformat markdown files 2024-04-14 23:08:11 +03:00

rust-GameDig

The fast library for querying game servers/services.
This library brings what node-GameDig does (and not only), to pure Rust!

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

Community

Checkout the GameDig Community Discord Server here.
Note that it isn't be a replacement for GitHub issues, if you have found a problem within the library or want to request a feature, it's better to do so here rather than on Discord.

Usage

Minimum Supported Rust Version is 1.65.0 and the code is cross-platform.

Pick a game/service/protocol (check the GAMES, SERVICES and PROTOCOLS files to see the currently supported ones), 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::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)
    }
}

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

Want to see more examples? Checkout the examples folder.

Command Line Interface

The library also has an official CLI: GameDig-CLI.

Documentation

The documentation is available at docs.rs.
Curious about the history and what changed between versions?
Everything is in the changelogs file: lib and cli.

Contributing

If you want to 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)!

Before contributing please read CONTRIBUTING.