# 小灯泡web服务 **Repository Path**: i7606/lightbulb-web-server ## Basic Information - **Project Name**: 小灯泡web服务 - **Description**: 一个轻量级、高性能的Web 服务器,专为静态文件服务和开发测试环境设计。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-08 - **Last Updated**: 2025-09-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: Rust ## README # 🔆 Lightbulb Web Server 一个轻量级、高性能的 Rust Web 服务器,专为静态文件服务和开发测试环境设计。 【此项目不再维护,仅作为学习rust的案例,谨慎使用】 【此项目不再维护,仅作为学习rust的案例,谨慎使用】 【此项目不再维护,仅作为学习rust的案例,谨慎使用】 [![Rust](https://img.shields.io/badge/Rust-1.70%2B-orange?logo=rust)](https://www.rust-lang.org/) [![Rocket](https://img.shields.io/badge/Rocket-0.5.1-blue)](https://rocket.rs/) [![License](https://img.shields.io/badge/License-MIT-green)](LICENSE) ## ✨ 特性 - 🚀 **高性能** - 基于 Rust 和 Rocket 框架构建 - 📁 **静态文件服务** - 自动提供 `static/` 目录下的文件 - 📝 **Markdown 支持** - 自动将 `.md` 文件转换为 HTML 并提供服务(修改需重启) - ⚙️ **灵活配置** - 支持命令行参数和配置文件 - 🎯 **智能路由** - 支持动态文件路径和错误页面处理 - 📊 **日志系统** - 内置日志记录,支持不同级别 - 🔒 **安全防护** - 路径安全检查,防止目录遍历攻击 ## 📦 安装 ### 前提条件 - Rust 1.70+ 版本 - Cargo 包管理器 ### 从源码安装 ```bash # 克隆项目 git clone git@gitee.com:i7606/lightbulb-web-server.git cd lightbulb-web-server # 编译发布版本 cargo build --release # 运行服务器 ./target/release/lightbulb-web-server ``` ## 🚀 快速开始 ### 基本使用 ```bash # 使用默认配置启动服务器 lightbulb-web-server # 指定端口启动 lightbulb-web-server --port 8080 # 指定配置文件和端口 lightbulb-web-server --config config.toml --port 3000 ``` ### 配置文件示例 创建 `config.toml` 文件: ```toml [server] port = 8080 address = "0.0.0.0" environment = "dev" [logging] level = "debug" ``` ## 📁 项目结构 ``` lightbulb-web-server/ ├── src/ │ ├── main.rs # 程序入口点 │ ├── config.rs # 配置管理 │ ├── routes.rs # 路由处理 │ ├── file_utils.rs # 文件工具函数 │ └── page_cache.rs # 页面缓存管理 ├── static/ # 静态文件目录 │ ├── index.html # 首页 │ ├── 404.html # 404错误页面 │ ├── 500.html # 500错误页面 │ ├── about.html # 关于页面 │ └── docs/ # 文档目录 ├── Cargo.toml # 项目依赖配置 ├── config.toml # 配置文件示例 └── README.md # 项目说明 ``` ## ⚙️ 配置选项 ### 命令行参数 | 参数 | 缩写 | 说明 | 默认值 | |------|------|------|--------| | `--port` | `-p` | 服务器端口 | 80 | | `--address` | `-a` | 服务器地址 | 0.0.0.0 | | `--environment` | `-e` | 运行环境 | test | | `--config` | `-c` | 配置文件路径 | 无 | ### 日志配置 日志级别通过配置文件中的 `logging.level` 字段设置,支持的值:trace, debug, info, warn, error ## 📝 API 接口 ### 静态文件服务 - `GET /` - 返回首页 (static/index.html) - `GET /` - 返回指定静态文件 - `GET /docs/` - 访问文档目录文件 ### 错误处理 - 自动处理 404 和 500 错误 - 自定义错误页面支持 ## 🛠️ 开发 ### 运行开发版本 ```bash cargo run ``` ### 运行测试 ```bash cargo test ``` ### 构建发布版本 ```bash cargo build --release ``` ## 🔧 依赖项 - **rocket** - Web 框架 - **tokio** - 异步运行时 - **clap** - 命令行参数解析 - **serde** - 序列化框架 - **toml** - TOML 配置文件解析 - **log/env_logger** - 日志系统 - **pulldown-cmark** - Markdown 解析 - **dashmap** - 高性能并发映射 ## 📄 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! ## 📞 支持 如果您遇到问题或有建议: 1. 查看现有 Issue 2. 创建新的 Issue 3. 联系维护团队 --- **注意**: 本服务仅用于开发和测试环境,请勿在生产环境中使用! Powered by Rust + Rocket 🚀