Web后端框架(hyperlane)
2025年2月22日大约 1 分钟hyperlanewebrust
hyperlane 是一个轻量级且高性能的 Rust HTTP 服务器库,旨在简化网络服务的开发。它支持 HTTP 请求解析、响应构建、TCP 通信和重定向功能,适合构建现代 Web 服务。
安装
要使用此 crate,可以运行以下命令:
cargo add hyperlane
快速开始
git clone https://github.com/ltpp-universe/hyperlane-quick-start.git
使用示例
use hyperlane::*;
async fn test_middleware(arc_lock_controller_data: ArcRwLockControllerData) {
let socket_addr: String = arc_lock_controller_data
.get_socket_addr()
.await
.unwrap_or_default();
let mut controller_data: RwLockWriteControllerData =
arc_lock_controller_data.get_write_lock().await;
let response: &mut Response = controller_data.get_mut_response();
response
.set_header(SERVER, "hyperlane")
.set_header(CONNECTION, CONNECTION_KEEP_ALIVE)
.set_header("SocketAddr", socket_addr);
}
async fn root_router(arc_lock_controller_data: ArcRwLockControllerData) {
let send_res: ResponseResult = arc_lock_controller_data
.send_response(200, "hello hyperlane => /")
.await;
let controller_data: ControllerData = arc_lock_controller_data.get_clone().await;
controller_data.get_log().info(
format!("Response result => {:?}", send_res),
log_debug_format_handler,
);
}
async fn panic_route(_controller_data: ArcRwLockControllerData) {
panic!("test panic");
}
async fn run_server() {
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.log_interval_millis(1000).await;
server.middleware(test_middleware).await;
server.router("/", root_router).await;
server.router("/panic", panic_route).await;
let test_string: String = "test".to_owned();
server
.router(
"/test/func",
async_func!(test_string, |data| {
println_success!(test_string);
println_success!(format!("{:?}", data));
}),
)
.await;
server.listen().await;
}
许可证
此项目基于 MIT 许可证授权。详细信息请查看 license 文件。
贡献
欢迎贡献!请提交 issue 或创建 pull request。
联系方式
如有任何疑问,请联系作者:ltpp-universe [email protected]。