rcon-client

Crates.iorcon-client
lib.rsrcon-client
version0.1.2
sourcesrc
created_at2022-07-22 08:21:44.048951
updated_at2022-07-22 08:21:44.048951
descriptionRCON client
homepage
repositoryhttps://github.com/donkey-engine/rcon-rs
max_upload_size
id630620
size11,925
Suprun (ya7on)

documentation

README

rcon-rs

Simple implementation of a crate that allows you to work with the RCON protocol

To work with TCP, the TcpStream structure built into the std::net module is used

About RCON

Dependencies

  • bytes for converting types to bytes, for subsequent transmission via tcp
  • rand for generate a random request ID
  • serde for serializing errors
  • thiserror for serializing errors too

Games that support this protocol

  • Minecraft
  • Counter Strike
  • ARK
  • Rust
  • SAMP
  • MTA
  • etc

Example

use rcon::{AuthRequest, RCONClient, RCONConfig, RCONError, RCONRequest};

fn main() -> Result<(), RCONError> {
    // Create new RCON client
    let mut client = RCONClient::new(RCONConfig {
        url: "donkey-engine.host".to_string(),
        // Optional
        read_timeout: Some(13),
        write_timeout: Some(37),
    })?;

    // Auth request to RCON server (SERVERDATA_AUTH)
    let auth_result = client.auth(AuthRequest::new("rcon.password".to_string()))?;
    assert!(auth_result.is_success());

    // Execute command request to RCON server (SERVERDATA_EXECCOMMAND)
    let version = client.execute(RCONRequest::new("seed".to_string()))?;
    assert_eq!(version.body, "Seed: [3257840388504953787]");

    Ok(())
}

Commit count: 13

cargo fmt