No description
Find a file
2024-06-10 20:58:03 -04:00
src update readme.md; remove useless func 2024-06-10 20:58:03 -04:00
.gitignore extremely wip init 2024-06-08 01:24:28 -04:00
Cargo.toml update readme.md; remove useless func 2024-06-10 20:58:03 -04:00
README.md update readme.md; remove useless func 2024-06-10 20:58:03 -04:00

rsourcequery

Pure Rust async implementation of the Source A2S_INFO Query Protocol.

Sample snippet:

use rsourcequery::info::{ServerInfo, query, query_timeout_duration};
use std::time::Duration;
use tokio::main;

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
    // Uncletopia New York City 1
    let host: &str = "nyc-1.us.uncletopia.com:27015";

    // query with a default timeout of 5 seconds
    let info: ServerInfo = query(host).await?;
    dbg!(info);

    // query with a custom duration
    let long_duration: Duration = Duration::from_secs(100000);
    let long_awaited_info: ServerInfo = query_timeout_duration(host, long_duration).await?;
    dbg!(long_awaited_info);
    
    Ok(())
}

To-Do

  • Querying
  • Single packet response parsing
  • Challenge resolution
  • Server info parsing
  • High-level async query()
  • String handling improvement
  • Split packet response parsing