6 releases (stable)

1.2.0 Aug 24, 2021
1.1.1 Sep 2, 2019
1.1.0 Aug 14, 2019
0.1.1 Aug 13, 2019

#1394 in Network programming

MIT license

25KB
508 lines

ReRCON

ReRCON is a RCON library written with primarily the game Ark: Survival Evolved in mind. While this library is Valve RCON compliant, and should thus work with other RCON applications, it has not been tested for other applications.

There are two primary types to be used with this create, Connection and ReConnection, both of these types share the same API, the primary difference is that ReConnection::exec will never return IO errors, as it will start a new thread to reconnect, instead, it will return error BusyReconnecting, with a string being a to_string representation of the error that caused the reconnect in the first place.

All public methods use a template to accept all forms of strings that implement Into<String>, however the library will always return std::string::String

Async

Starting with v2, this library will be fully async. The non-async version will no longer be supported.

Example

One-off connection:
use rercon::Connection;

let mut connection = Connection::open("123.456.789.123:27020", "my_secret_password", None).await?;
let reply = connection.exec("hello").await?;
println!("Reply from server: {}", reply);
Automatically reconnecting connection:
use rercon::ReConnection;

let mut connection = ReConnection::open("123.456.789.123:27020", "my_secret_password", None).await?;
let reply = connection.exec("hello").await?;
println!("Reply from server: {}", reply);

Dependencies

~3–15MB
~132K SLoC