Packetz
Create async packet-based servers with ease, Built with gamedev in mind. Stay tuned for UDP support, TLS support and more!
Basic usage
Server
use packetz::{server::*, packet::*};
#[tokio::main]
async fn main() -> Result<(), std::io::Error> {
let server: Server<&str> = Server::bind("0.0.0.0:5515"); let listener: ServerListener = server.listen().await?;
loop {
let mut (
connection: PacketStream<tokio::net::TcpStream>,
addr: std::net::SocketAddr
) = listener.accept().await?;
tokio::spawn(async move {
'l: loop { let msg = connection.recv().await?;
connection.send(msg).await?;
connection.disconnect(); break 'l;
}
})
}
}
Client
use packetz::{client::*, packet::*};
#[tokio::main]
async fn main() -> Result<(), std::io::Error> {
let mut client = packetz::client::connect("0.0.0.0:5515").await?;
client.send(b"Hello, Packetz!").await?;
println!("{}", String::from_utf8(
client.recv().await?
)?);
Ok(())
}
Dependencies
Dependencies for these examples:
[dependencies]
packetz = "0.1.0"
tokio = { version = "1.29.0", features = ["net", "io-util", "time", "rt", "rt-multi-thread"] }