Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

donkey-engine/rcon-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

16 Commits

Repository files navigation

rcon-rs

crates.io github ci travis ci

Crates.io

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(())
}

Packages

No packages published

Contributors 3

Languages

AltStyle によって変換されたページ (->オリジナル) /