#web-server #directory-listing #static-file #file-server #serve-static #cross-platform #header-file

bin+lib static-web-server

一个支持跨平台、高性能和异步的静态文件服务Web服务器

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服务器

Download history 177/week @ 2024-04-26 33/week @ 2024-05-03 25/week @ 2024-05-10 404/week @ 2024-05-17 67/week @ 2024-05-24 21/week @ 2024-05-31 17/week @ 2024-06-07 177/week @ 2024-06-14 68/week @ 2024-06-21 37/week @ 2024-06-28 128/week @ 2024-07-05 1/week @ 2024-07-12 123/week @ 2024-07-19 150/week @ 2024-07-26 22/week @ 2024-08-02 124/week @ 2024-08-09

每月419次下载

MIT/Apache

335KB
7K SLoC

静态Web服务器

一个跨平台、高性能和异步的用于静态文件服务的Web服务器 ⚡

概述

静态Web服务器(或简称SWS)是一个小巧且快速的成品Web服务器,适用于服务静态Web文件或资源。

它专注于轻量级和易于使用的原则,同时保持由Rust编程语言提供的高性能和安全

它基于HyperTokio 运行时,提供了并发和异步网络能力以及最新的HTTP/1 - HTTP/2实现。

跨平台,支持LinuxmacOSWindowsFreeBSDNetBSDAndroidDockerWasm(通过Wasmer)。

static-web-server running

特性

  • 使用Rust编写,该语言注重安全性、速度和并发
  • 内存安全,显著减少CPU和RAM开销。
  • 由最新的 HyperTokio 和一系列优秀的 crate 驱动的超快速静态文件服务和异步处理。
  • 4MB(未压缩)静态二进制文件,无依赖项(Musl libc)。适用于在任何 Linux 发行版Docker 容器 上运行。
  • 仅对基于文本的网页文件提供可选的 GZip、Deflate、Brotli 或 Zstandard(zstd)压缩。
  • 通过 Accept-Encoding 头部按需进行压缩。
  • 支持大文件的字节数据传输。
  • 可选的 Cache-Control 头部用于资源。
  • 使用 终止信号 处理和具有优雅关闭能力和宽限期的能力。
  • 支持 HTTP/2 和 TLS。
  • 默认启用 HTTP/2 的安全头部。
  • 支持 HEADOPTIONS 响应。
  • 通过 tracing crate 轻量级和可配置的日志记录。
  • 可自定义阻塞和工作者线程的数量。
  • 可选的目录列表功能,支持排序和 JSON 输出格式。
  • 支持 CORS 和预检请求。
  • 基本 HTTP 身份验证。
  • 通过 glob 模式自定义特定文件请求的 HTTP 响应头部。
  • 为 404 错误提供回退页面,对单页应用很有用。
  • 可以作为 Windows 服务 运行服务器。
  • 使用 CLI 参数、环境变量或 TOML 文件进行配置。
  • 默认和自定义错误页面。
  • 内置 HTTP 到 HTTPS 重定向。
  • GET/HEAD 健康检查端点。
  • 直接从磁盘服务预先压缩(Gzip/Brotli/Zstd)的文件。
  • 通过 glob 模式和替换进行自定义 URL 重写和重定向。
  • 支持虚拟主机。
  • 支持多个索引文件。
  • 维护模式功能。
  • 作为具有可选功能的库 crate 提供。
  • 提供一流的 Docker 支持。包括 Scratch、最新的 Alpine LinuxDebian Docker 镜像。
  • 可以接受作为文件描述符的套接字监听器,用于沙盒化和按需应用程序(例如 systemd)。
  • 跨平台。预编译的二进制文件适用于 Linux、macOS、Windows、FreeBSD、NetBSD、Android(x86/x86_64ARM/ARM64)和 WebAssembly(通过 Wasmer)。

文档

有关 API、用法和示例的更多详细信息,请参阅 文档网站

版本

基准测试

更多信息请查看 基准测试仓库

注意

贡献

除非您明确说明,否则您提交的任何有意包含在当前工作中的贡献,根据 Apache-2.0 许可证定义,应如下双重许可,不附加任何额外条款或条件。

请随时提交 拉取请求 或提交 问题

社区

SWS 社区在 Discord 上

许可证

本作品主要在以下两个许可证的条款下分发:MIT 许可证Apache 许可证(版本 2.0)

© 2019-至今 Jose Quintana

依赖项

~26–42MB
~772K SLoC