Expand description

Helper library for the CS:GO Game State Integration (GSI) API.

Best used with the tokio async ecosystem.

Usage

Add this to your Cargo.toml:

[dependencies]
csgo-gsi2 = "0.3.4"
tokio = { version = "1.20.1", features = ["full"] }

Simple Example

examples/simple.rs Can be run with cargo run --example simple.

use csgo_gsi2::{GSIConfigBuilder, GSIServer, Subscription};

#[tokio::main]
async fn main() {
    let config = GSIConfigBuilder::new("csgo-gsi")
        .subscribe_multiple(Subscription::UNRESTRICTED)
        .build();

    let mut server = GSIServer::new(config, 3000);
    server.add_listener(|update| println!("Got an update {:#?}", update));

    server
        .run()
        .await
        .expect("server didn't start");
}

Check examples/verbose.rs for the verbose example. Can be run with cargo run --example verbose.

Features

  • autoinstall - Automatically install the gamestate_integration_csgo-gsi.cfg in the csgo folder.

Re-exports

pub use update::Update;

Modules

all information that can be contained in a GSI update

Structs

Game State Integration configuration
Builder struct for GSIConfig
a server that listens for GSI updates

Enums

any error caused by this library
which pieces of information to subscribe to