25个稳定版本
新功能 2.32.2 | 2024年8月13日 |
---|---|
2.32.1 | 2024年7月20日 |
2.32.0 | 2024年6月19日 |
2.28.0 | 2024年3月8日 |
2.20.1 | 2023年7月20日 |
#78 in HTTP服务器
每月419次下载
335KB
7K SLoC
概述
静态Web服务器(或简称SWS
)是一个小巧且快速的成品Web服务器,适用于服务静态Web文件或资源。
它专注于轻量级和易于使用的原则,同时保持由Rust编程语言提供的高性能和安全。
它基于Hyper 和 Tokio 运行时,提供了并发和异步网络能力以及最新的HTTP/1 - HTTP/2实现。
跨平台,支持Linux
、macOS
、Windows
、FreeBSD
、NetBSD
、Android
、Docker
和 Wasm(通过Wasmer)。
特性
- 使用Rust编写,该语言注重安全性、速度和并发。
- 内存安全,显著减少CPU和RAM开销。
- 由最新的 Hyper、Tokio 和一系列优秀的 crate 驱动的超快速静态文件服务和异步处理。
- 单 4MB(未压缩)静态二进制文件,无依赖项(Musl libc)。适用于在任何 Linux 发行版 或 Docker 容器 上运行。
- 仅对基于文本的网页文件提供可选的 GZip、Deflate、Brotli 或 Zstandard(zstd)压缩。
- 通过 Accept-Encoding 头部按需进行压缩。
- 支持大文件的字节数据传输。
- 可选的 Cache-Control 头部用于资源。
- 使用 终止信号 处理和具有优雅关闭能力和宽限期的能力。
- 支持 HTTP/2 和 TLS。
- 默认启用 HTTP/2 的安全头部。
- 支持 HEAD 和 OPTIONS 响应。
- 通过 tracing crate 轻量级和可配置的日志记录。
- 可自定义阻塞和工作者线程的数量。
- 可选的目录列表功能,支持排序和 JSON 输出格式。
- 支持 CORS 和预检请求。
- 基本 HTTP 身份验证。
- 通过 glob 模式自定义特定文件请求的 HTTP 响应头部。
- 为 404 错误提供回退页面,对单页应用很有用。
- 可以作为 Windows 服务 运行服务器。
- 使用 CLI 参数、环境变量或 TOML 文件进行配置。
- 默认和自定义错误页面。
- 内置 HTTP 到 HTTPS 重定向。
- GET/HEAD 健康检查端点。
- 直接从磁盘服务预先压缩(Gzip/Brotli/Zstd)的文件。
- 通过 glob 模式和替换进行自定义 URL 重写和重定向。
- 支持虚拟主机。
- 支持多个索引文件。
- 维护模式功能。
- 作为具有可选功能的库 crate 提供。
- 提供一流的 Docker 支持。包括 Scratch、最新的 Alpine Linux 和 Debian Docker 镜像。
- 可以接受作为文件描述符的套接字监听器,用于沙盒化和按需应用程序(例如 systemd)。
- 跨平台。预编译的二进制文件适用于 Linux、macOS、Windows、FreeBSD、NetBSD、Android(
x86/x86_64
、ARM/ARM64
)和 WebAssembly(通过 Wasmer)。
文档
有关 API、用法和示例的更多详细信息,请参阅 文档网站。
版本
基准测试
更多信息请查看 基准测试仓库
注意
- 如果您正在寻找
v1
,请访问 1.x 分支。 - 如果您想从
v1
迁移到v2
,请查看 从v1
迁移到v2
发行版。
贡献
除非您明确说明,否则您提交的任何有意包含在当前工作中的贡献,根据 Apache-2.0 许可证定义,应如下双重许可,不附加任何额外条款或条件。
社区
许可证
本作品主要在以下两个许可证的条款下分发:MIT 许可证 和 Apache 许可证(版本 2.0)。
© 2019-至今 Jose Quintana
依赖项
~26–42MB
~772K SLoC