#http-request #http-response #request-response #redirect #tcp #http #request

tcplane

tcplane is a lightweight and high-performance Rust TCP server library designed to simplify network service development. It supports TCP communication, data stream management, and connection handling, focusing on providing efficient low-level network connections and data transmission capabilities, making it ideal for building modern network services.

148 stable releases

Uses new Rust 2024

new 3.16.0 Mar 30, 2025
3.15.2 Mar 29, 2025
3.0.3 Feb 26, 2025
2.14.1 Feb 21, 2025
0.0.6 Jan 2, 2025

#1402 in Network programming

Download history 1092/week @ 2024-12-29 2424/week @ 2025-01-05 1892/week @ 2025-01-12 2182/week @ 2025-01-19 17/week @ 2025-01-26 719/week @ 2025-02-02 1424/week @ 2025-02-09 1727/week @ 2025-02-16 595/week @ 2025-02-23 2966/week @ 2025-03-02 590/week @ 2025-03-09 479/week @ 2025-03-16 1052/week @ 2025-03-23

5,109 downloads per month

MIT license

31KB
748 lines

tcplane

Official Documentation

Api Docs

tcplane is a lightweight and high-performance Rust TCP server library designed to simplify network service development. It supports TCP communication, data stream management, and connection handling, focusing on providing efficient low-level network connections and data transmission capabilities, making it ideal for building modern network services.

Installation

To use this crate, you can run cmd:

cargo add tcplane

Use

use tcplane::*;

async fn test_func(ctx: Context) {
    ctx.send("Tcplane").await.unwrap();
    let response: Response = ctx.get_response().await;
    let response_data: &ResponseData = response.get_response_data();
    ctx.log_debug(
        &format!(
            "Response => {:?}\n",
            String::from_utf8_lossy(&response_data)
        ),
        log_handler,
    )
    .await;
}

#[tokio::main]
async fn main() {
    let mut server: Server = Server::new();
    server.host("0.0.0.0").await;
    server.port(60000).await;
    server.log_dir("./logs").await;
    server.log_size(100_024_000).await;
    server.buffer(100_024_000).await;
    server.func(test_func).await;
    let test_string: String = "test".to_owned();
    server
        .func(async_func!(test_string, |data| {
            println_success!(&test_string);
            println_success!(String::from_utf8_lossy(&data.get_request().await));
        }))
        .await;
    server.listen().await;
}

License

This project is licensed under the MIT License. See the LICENSE file for details.

Contributing

Contributions are welcome! Please open an issue or submit a pull request.

Contact

For any inquiries, please reach out to the author at ltpp-universe root@ltpp.vip.

Dependencies

~6–13MB
~155K SLoC