Crate rust_raknet
source · [−]Expand description
RakNet Protocol implementation by Rust.
Raknet is a reliable udp transport protocol that is often used for communication between game clients and servers. This project is an incomplete implementation of the protocol.
Reference : http://www.jenkinssoftware.com/raknet/manual/index.html
This project is not affiliated with Jenkins Software LLC nor RakNet.
Features
- Async
- MIT License
- Pure Rust implementation
- Linux/Windows/Mac/BSD support
- Compatible with Minecraft 1.18.x
Get Started
[dependencies]
rust-raknet = "0.2.0"
Reliability
- unreliable
- unreliable sequenced
- reliable
- reliable ordered
- reliable sequenced
- unreliable (+ ACK receipt)
- reliable (+ ACK receipt)
- reliable ordered (+ ACK receipt)
Example
ⓘ
//server
async fn serve(){
let mut listener = RaknetListener::bind("127.0.0.1:19132".parse().unwrap()).await.unwrap();
listener.listen().await;
loop{
let mut socket = listener.accept().await.unwrap();
let buf = socket.recv().await.unwrap();
if buf[0] == 0xfe{
//do something
}
}
}
ⓘ
//client
async fn connect(){
let mut socket = RaknetSocket::connect("127.0.0.1:19132".parse().unwrap()).await.unwrap();
socket.send(&[0xfe], Reliability::ReliableOrdered).await.unwrap();
let buf = socket.recv().await.unwrap();
if buf[0] == 0xfe{
//do something
}
socket.close();
}
Macros
Print Raknet Log
Structs
Implementation of Raknet Server.
Raknet socket wrapper with local and remote.
Enums
Enumeration type options for Raknet transport reliability
Functions
A switch to print Raknet logs