23 releases (5 breaking)

Uses new Rust 2024

0.7.8 Jan 12, 2026
0.7.7 Jan 11, 2026
0.6.0 Dec 2, 2025
0.5.12 Nov 24, 2025
0.1.8 Oct 25, 2025

#1114 in HTTP server


Used in puniyu_core

LGPL-3.0-only

210KB
5.5K SLoC

puniyu_server

puniyu Web服务器模块

概述

puniyu_server 是 puniyu 项目中的 Web 服务器核心库,基于 actix-web 框架构建。它提供了 HTTP 服务器的启动、日志记录、访问日志中间件等核心功能。

核心功能

服务器启动

  • run_server: 启动 HTTP 服务器的主函数
  • run_server_spawn: 在后台线程中启动 HTTP 服务器

服务器配置:

  • 默认监听地址:127.0.0.1:33720
  • 可通过环境变量 HTTP_HOSTHTTP_PORT 自定义
  • 支持通过参数指定监听地址和端口

日志系统

  • log_init: 初始化日志系统
  • 支持环境变量配置日志级别
  • 提供统一的日志宏:info!warn!error!debug!

日志配置:

  • 默认日志级别:info
  • 可通过 LOGGER_LEVEL 环境变量设置
  • 日志前缀统一为 Server

中间件

AccessLog 中间件

记录 HTTP 请求访问日志:

  • 记录请求方法、路径、响应状态码
  • 记录请求处理耗时(毫秒)
  • 记录客户端 IP 地址
  • 支持从 HTTP 头部解析真实客户端 IP(X-Forwarded-ForX-Real-IPTrue-Client-Ip

NormalizePath 中间件

标准化请求路径:

  • 自动处理尾部斜杠
  • 统一路径格式

项目结构

src/
├── lib.rs          # 库导出模块
├── main.rs         # 主程序入口
├── server.rs       # 服务器核心逻辑
├── logger.rs       # 日志系统
├── middleware/     # 中间件模块
│   └── logger.rs   # 访问日志中间件

环境变量配置

  • HTTP_HOST: 服务器监听地址(默认:127.0.0.1)
  • HTTP_PORT: 服务器监听端口(默认:33720)
  • LOGGER_LEVEL: 日志级别(默认:info)
  • LOGGER_ENABLE: 日志启用开关(默认:info)

特性

  • 异步支持: 基于 tokio 异步运行时
  • 高性能: 使用 actix-web 框架提供高性能 HTTP 服务
  • 可配置: 支持环境变量和参数配置
  • 日志记录: 完整的访问日志和应用日志
  • IP 解析: 智能解析真实客户端 IP 地址
  • 路径标准化: 自动处理 URL 路径格式

示例响应

服务器启动后,默认在根路径 / 返回 "Hello World!" 响应。

许可证

本项目采用 LGPL 许可证。

Dependencies

~29–45MB
~608K SLoC