diff --git a/crates/cli/README.md b/crates/cli/README.md new file mode 100644 index 00000000..e69de29b diff --git a/crates/lib/Cargo.toml b/crates/lib/Cargo.toml index a557eab8..012dd079 100644 --- a/crates/lib/Cargo.toml +++ b/crates/lib/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "gamedig" -version = "0.4.1" +version = "0.5.0" edition = "2021" authors = [ "rust-GameDig contributors [https://github.com/gamedig/rust-gamedig/contributors]", diff --git a/crates/lib/README.md b/crates/lib/README.md new file mode 100644 index 00000000..dcf928d9 --- /dev/null +++ b/crates/lib/README.md @@ -0,0 +1,93 @@ +

rust-GameDig

+ +
The fast library for querying game servers/services.
+ +
+ + CI + + + Latest Version + + + Crates.io + + + Node-GameDig Game Coverage + +
+ +
+ 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](https://discord.gg/NVCMn3tnxH). +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](GAMES.md), [SERVICES](SERVICES.md) and [PROTOCOLS](PROTOCOLS.md) 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](https://store.steampowered.com/app/440/Team_Fortress_2/) query example: +```rust +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): +```json5 +{ + 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](crates/lib/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? Everything is in the [CHANGELOG](CHANGELOG.md) file. + +## 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](CONTRIBUTING.md).