/gsi-csgo

A library containing ready-made structures for deserializing or reverse serializing data provided by CSGO GSI using serde. With examples.

Primary LanguageRustMIT LicenseMIT

gsi-csgo

A library containing ready-made structures for deserializing or reverse serializing data provided by CSGO GSI using serde.

Example

First you need to install gamestate_integration_fast.cfg in csgo/cfg folder.

examples/payload.rs

use poem::{handler, listener::TcpListener, post, Route, Server, web::Json};
use gsi_csgo::Body;

#[handler]
async fn update(data: Json<Body>) {
    println!("{:#?}", data);
}

#[tokio::main]
async fn main() -> Result<(), std::io::Error> {
    tracing_subscriber::fmt::init();

    let app = Route::new().at("/", post(update));
    
    Server::new(TcpListener::bind("127.0.0.1:3000"))
        .run(app)
        .await
}

You need add this to your Cargo.toml

[dependencies]
gsi-csgo = "0.1.0"
poem = "1.3.48"
tokio = { version = "1.21.2", features = ["rt-multi-thread", "macros"] }
tracing-subscriber = "0.3.16"

or just use cargo run --example payload

Another examples can be found in the github repository.

License

MIT