diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index afd0614..f21a932 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -128,7 +128,7 @@ jobs: - name: Install MSRV uses: actions-rs/toolchain@v1 with: - toolchain: 1.65.0 + toolchain: 1.67.0 override: true - name: Run MSRV run: cargo check -p gamedig diff --git a/README.md b/README.md index 512fb58..0d33d69 100644 --- a/README.md +++ b/README.md @@ -1,118 +1,118 @@ -

rust-GameDig

- -
The fast library for querying game servers/services.
- -
- - CI - - - Latest Version - - - Crates.io - - - Node-GameDig Game Coverage - - - Rust-GameDig Dependencies - -
- -
- 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. - -## Command Line Interface - -The library also has an [official CLI](https://crates.io/crates/gamedig_cli) that you can use but it has -MSRV of `1.74.1`. - -## 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 changelogs file: [lib](crates/lib/CHANGELOG.md) and [cli](crates/lib/CHANGELOG.md). - -## 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). +

rust-GameDig

+ +
The fast library for querying game servers/services.
+ +
+ + CI + + + Latest Version + + + Crates.io + + + Node-GameDig Game Coverage + + + Rust-GameDig Dependencies + +
+ +
+ 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.67.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. + +## Command Line Interface + +The library also has an [official CLI](https://crates.io/crates/gamedig_cli) that you can use but it has +MSRV of `1.74.1`. + +## 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 changelogs file: [lib](crates/lib/CHANGELOG.md) and [cli](crates/lib/CHANGELOG.md). + +## 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). diff --git a/crates/lib/Cargo.toml b/crates/lib/Cargo.toml index 70c4114..ffad431 100644 --- a/crates/lib/Cargo.toml +++ b/crates/lib/Cargo.toml @@ -13,7 +13,7 @@ documentation = "https://docs.rs/gamedig/latest/gamedig/" repository = "https://github.com/gamedig/rust-gamedig" readme = "README.md" keywords = ["server", "query", "game", "check", "status"] -rust-version = "1.65.0" +rust-version = "1.67.0" categories = ["parser-implementations", "parsing", "network-programming", "encoding"] [features]