1 个不稳定版本

0.1.0 2023年1月6日

#36 in #tcp-stream

MIT 许可证

13KB
291 代码行

Trellis

Rust-Lang的一个简单网络库。


入门指南

监听器:


// ===== 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(())
}

客户端:


// ===== 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(())
}

依赖项

~3–10MB
~83K SLoC