8 releases (4 breaking)
0.5.0 | Jan 23, 2024 |
---|---|
0.4.1 | Apr 19, 2023 |
0.4.0 | Mar 21, 2023 |
0.3.1 | Oct 27, 2022 |
0.1.0 | Mar 23, 2019 |
#1264 in Network programming
105 downloads per month
Used in mc-server-pinger
30KB
529 lines
craftping
craftping is a Rust library to ping Minecraft Servers.
Usage
[dependencies]
craftping = "0.5.0"
You can synchronously ping to the server with craftping::sync::ping
:
use std::net::TcpStream;
use craftping::sync::ping;
fn main() {
let hostname = "localhost";
let port = 25565;
let mut stream = TcpStream::connect((hostname, port)).unwrap();
let pong = ping(&mut stream, hostname, port).expect("Cannot ping server");
println!("Ping result: {:?}", pong);
}
sync
module requires sync
feature, which is enabled by default.
If you want to send pings asynchronously, you can use craftping::tokio::ping
or craftping::futures::ping
:
craftping::tokio::ping
use tokio::net::TcpStream;
use craftping::tokio::ping;
#[tokio::main]
async fn main() {
let hostname = "localhost";
let port = 25565;
let mut stream = TcpStream::connect((hostname, port)).await.unwrap();
let pong = ping(&mut stream, hostname, port).await.expect("Cannot ping server");
println!("Ping result: {:?}", pong);
}
craftping::futures::ping
use async_std::net::TcpStream;
use craftping::futures::ping;
#[async_std::main]
async fn main() {
let hostname = "localhost";
let port = 25565;
let mut stream = TcpStream::connect((hostname, port)).await.unwrap();
let pong = ping(&mut stream, hostname, port).await.expect("Cannot ping server");
println!("Ping result: {:?}", pong);
}
Note that tokio
module requires async-tokio
feature and futures
async-futures
.
Check here for more information about ping result.
Contributing
Pull requests are welcome. For major issues, please open the issue on this repository first.
License
Dependencies
~0.9–7MB
~59K SLoC