Skip to main content

Crate raknet_rust

Crate raknet_rust 

Source
Expand description

raknet-rust is an asynchronous RakNet transport library.

The crate exposes two API layers:

§Quick Start (Server)

use raknet_rust::server::{RaknetServer, RaknetServerEvent};

#[tokio::main(flavor = "current_thread")]
async fn main() -> std::io::Result<()> {
    let mut server = RaknetServer::bind("0.0.0.0:19132".parse().unwrap()).await?;

    while let Some(event) = server.next_event().await {
        if let RaknetServerEvent::Packet { peer_id, payload, .. } = event {
            server.send(peer_id, payload).await?;
        }
    }

    Ok(())
}

§Quick Start (Client)

use raknet_rust::client::{RaknetClient, RaknetClientEvent};

#[tokio::main(flavor = "current_thread")]
async fn main() -> std::io::Result<()> {
    let mut client = RaknetClient::connect("127.0.0.1:19132".parse().unwrap()).await?;

    while let Some(event) = client.next_event().await {
        match event {
            RaknetClientEvent::Connected { .. } => {
                client.send(&b"hello"[..]).await?;
            }
            RaknetClientEvent::Packet { .. } => break,
            RaknetClientEvent::Disconnected { .. } => break,
            _ => {}
        }
    }

    Ok(())
}

Re-exports§

pub use connection::Connection;
pub use connection::ConnectionCloseReason;
pub use connection::ConnectionId;
pub use connection::ConnectionIo;
pub use connection::ConnectionMetadata;
pub use connection::RecvError;
pub use error::ConfigValidationError;
pub use error::DecodeError;
pub use error::EncodeError;
pub use listener::Incoming;
pub use listener::Listener;
pub use listener::ListenerMetadata;
pub use low_level::protocol::ConnectedControlPacket;
pub use low_level::protocol::Reliability;
pub use low_level::protocol::Sequence24;
pub use low_level::session::RakPriority;
pub use low_level::transport::EventOverflowPolicy;
pub use low_level::transport::ShardedRuntimeConfig;
pub use low_level::transport::TransportConfig;
pub use low_level::transport::TransportMetricsSnapshot;

Modules§

client
High-level client API.
connection
Per-peer connection API returned by crate::listener::Listener.
error
event
handshake
listener
Listener-oriented API built on top of crate::server::RaknetServer.
low_level
Advanced low-level API surface.
proxy
server
High-level server API.
telemetry