1 unstable release

0.1.0 Jan 6, 2023

#38 in #tcp-stream

MIT license

13KB
291 lines

Trellis

A simple networking library for Rust-Lang.


Getting Started

Listener:-


// ===== Imports =====
use std::io::Error;
use trellis::prelude::*;
// ===================

#[tokio::main]
async fn main() -> Result<(), Error> {
  let address = Address::new(
    (127, 0, 0, 1),
    8080,
  );
  
  let listener = Listener::new(address).await?;
  println!("Listening at: {:?}", listener.local_addr);
  loop {
    let mut conn = listener.accept().await?;
    println!("New Connection: {:?}", conn.peer_addr);
    conn.write_u8(100).await?;
    conn.write_string(String::from("Hello, World!")).await?;
  }
  Ok(())
}

Client:-


// ===== Imports =====
use std::io::Error;
use trellis::prelude::*;
// ===================

#[tokio::main]
async fn main() -> Result<(), Error> {
  let address = Address::new(
    (127, 0, 0, 1),
    8080,
  );
  
  let mut conn = Connection::new(address).await?;
  println!("Connected to: {:?}", conn.peer_addr);
  println!("Local Address: {:?}", conn.local_addr);
  let num = conn.read_u8().await?;
  println!("Message Received: {:?}", num);
  let data = conn.read_string(13).await?;
  println!("{:?}", data);
  Ok(())
}

Dependencies

~3–9MB
~82K SLoC