Static Web Server:跨平台、高性能和异步的静态文件服务器
Static Web Server (or SWS
abbreviated) 是一款小巧且快速的适用于生产环境的 Web 服务器,适合用于提供静态 Web 文件或资源。
它遵循 轻量且易用 的原则,同时借助 Rust 编程语言 实现 高性能与安全性。
它基于 Hyper 和 Tokio 运行时编写,具备 并发和异步网络能力 以及最新的 HTTP/1 至 HTTP/2 实现。
它支持跨平台,可在 Linux
、macOS
、Windows
、FreeBSD
、NetBSD
、Android
、Docker
和 Wasm
(通过 Wasmer)上使用。
特性
- 用 Rust 编写,注重 安全性、速度和并发性。
- 内存安全,显著降低 CPU 和内存开销。
- 由最新的 Hyper、Tokio 以及一系列 优秀的 Rust 包 提供支持,实现极快的静态文件服务和异步处理。
- 单个 4MB(未压缩)且完全静态的二进制文件,无依赖项(Musl libc)。适合在 任何 Linux 发行版 或 Docker 容器 上运行。
- 仅对基于文本的 Web 文件提供可选的 GZip、Deflate、Brotli 或 Zstandard(zstd)压缩。
- 通过 Accept-Encoding 头按需进行压缩。
- 支持 部分内容交付,可对大文件进行字节范围服务。
- 对资源提供可选的 Cache-Control 头。
- 具备 终止信号 处理能力,可实现 优雅关闭 并设置宽限期。
- 支持 HTTP/2 和 TLS。
- 默认对 HTTP/2 提供 安全头。
- 支持 HEAD 和 OPTIONS 响应。
- 通过 tracing 包实现轻量级且可配置的日志记录。
- 可定制阻塞线程和工作线程的数量。
- 支持可选的目录列表,并提供排序和 JSON 输出格式。
- 支持带预检请求的 CORS。
- 支持基本的 HTTP 身份验证。
- 可通过通配符模式为特定文件请求自定义 HTTP 响应头。
- 为 404 错误提供回退页面,对单页应用很有用。
- 可作为 Windows 服务 运行服务器。
- 可通过命令行参数、环境变量或 TOML 文件进行配置。
- 提供默认和自定义错误页面。
- 内置 HTTP 到 HTTPS 的重定向。
- GET/HEAD 健康检查端点。
- 支持直接从磁盘提供预压缩(Gzip/Brotli/Zstd)文件。
- 通过带替换的通配符模式实现自定义 URL 重写和重定向。
- 支持虚拟主机。
- 支持多个索引文件。
- 具备维护模式功能。
- 作为一个带有可选功能的库包提供。
- 提供一流的 Docker 支持。有 Scratch、最新的 Alpine Linux 和 Debian Docker 镜像。
- 能够接受套接字监听器作为文件描述符,用于沙箱和按需应用程序(例如 systemd)。
- 跨平台。提供针对 Linux、macOS、Windows、FreeBSD、NetBSD、Android(
x86/x86_64
、ARM/ARM64
)和 WebAssembly(通过 Wasmer)的预编译二进制文件。
文档
有关 API、用法和示例的更多详细信息,请参考 文档网站。
版本发布

https://github.com/static-web-server/static-web-server
https://static-web-server.net/