开发工具 2026
XServer / Rust
基于 Actix Web 的单文件静态资源服务,以双栈监听、结构化日志和明确参数服务前端产物。
- STATUS
- Stable
- RELEASE
- 2026
- STACK
- Rust 2024 · Actix Web · Clap · Tracing
XServer Rust 是什么
XServer Rust 是使用 Rust 与 Actix Web 实现的命令行静态文件服务器。它将指定目录作为站点根目录,通过一个可执行文件提供 HTTP 访问,适合预览前端构建产物、演示静态页面,以及在局域网内临时提供静态资源。
项目重点是启动参数明确、访问地址可见和请求可追踪。使用已构建的程序时,不需要额外启动 Node.js 开发服务器。
静态服务与网络能力
- 目录服务:将指定目录挂载到
/,目录首页使用index.html。启动时检查目录是否存在、是否为文件夹,并在日志中展示规范化路径。 - 监听配置:支持端口和指定 Host。未指定 Host 时监听 IPv4 通配地址,并尝试建立 IPv6 监听;指定 Host 时按给定地址绑定。
- 地址发现:启动后列出本机、localhost 和可用网络接口地址,过滤重复及链路本地地址,IPv6 URL 使用方括号格式。
- 请求标识:为请求生成 UUID,并在响应中写入
X-Request-Id,方便将浏览器请求与日志关联。 - 结构化日志:记录客户端地址、请求方法、URI、内容长度、响应状态和处理耗时,使用 Tracing 输出,并支持
RUST_LOG调整日志过滤。
启动参数
| 参数 | 默认值 | 用途 |
|---|---|---|
-p / --port |
22345 |
指定 HTTP 端口;代码检查范围为 1000–65535 |
-d |
. |
指定静态文件根目录 |
--host |
不指定 | 限定监听地址,例如 127.0.0.1 |
-h / --help |
— | 查看命令帮助 |
端口解析后若低于允许范围,会警告并回退到默认端口;无法解析为有效整数的输入由 Clap 拒绝。
构建与使用
在安装 Rust 工具链的环境中,从仓库根目录构建:
cargo build --release
使用构建后的程序提供 dist 目录,仅监听本机:
./target/release/xserver --host 127.0.0.1 -p 8080 -d ./dist
需要局域网访问时省略 --host,再使用启动日志中列出的接口地址访问。Windows 对应执行文件为 xserver.exe;其他系统按目标平台构建。
工程实现
服务主体采用 Rust 2024 Edition、Actix Web 与 Actix Files。Clap 解析命令行,if-addrs 枚举网络接口,Tracing 记录结构化请求,UUID 生成关联标识。Windows 构建通过资源脚本嵌入应用图标与版本信息。
与 Go 版 XServer 相比,Rust 版额外提供 --host 参数,并显式组织默认 IPv4 与可选 IPv6 监听逻辑。两者都围绕静态文件服务工作,没有动态业务 API。
服务边界
服务支持目录首页,但不会将未知路径统一回退到根 index.html。使用 History 路由的 SPA 直接刷新嵌套路由时,需要额外配置具有回退能力的服务;SSG 生成了对应目录首页的页面可按目录访问。
项目没有额外配置 TLS 终止、身份认证或反向代理管理。用于公开长期服务时,应由部署环境补齐相应能力。源码和完整构建信息见 项目 README。