6 个版本

0.2.0 2022年11月6日
0.1.4 2022年10月30日

#1323 in HTTP服务器

MIT/Apache

28KB
553

Zy

最小化且速度极快的文件服务器。真的,这次。

功能

  • 单页应用程序支持
  • 部分响应 (范围 支持)
  • 跨源资源共享 (CORS)
  • 自动HTTP压缩 (Zstd, Gzip, Brotli, Deflate)
  • 动态 缓存控制 (ETag, Last-Modified, Cache-Control)
  • 自动提供 index.html 文件
  • 合理的默认设置
    • 无访问隐藏文件权限
    • 无访问基础目录外内容权限
    • 无访问基础目录外符号链接权限

安装

您可以从 发布页面 下载任何预编译的二进制文件。

或者如果您已经安装了Rust,您可以使用 cargo 安装它

  • 请注意,zy 支持的Rust最低版本是 1.59.0
  • 此外,由于包含调试符号,二进制文件可能比预期的大。这是故意的。要删除调试符号并因此减小文件大小,您可以用 --profile slim 运行它,或者简单地运行 strip
cargo install zy

或者,您也可以直接从GitHub构建 zy 的最新版本。

cargo install --git https://github.com/miraclx/zy.git

用法

zy

这将默认在 https://127.0.0.1:3000 上提供服务您的当前目录。

...您也可以指定不同的端口或基础目录

zy /path/to/serve

...或者可能不同的地址

zy -l 5000 -l 127.0.0.1:8080 -l 192.168.1.25

配置

您可以通过运行 zy --help 来查看所有可用选项。

$ zy --help
Zy 0.2.0
Minimal and blazing-fast file server.

USAGE:
    zy [OPTIONS] [DIR]

ARGS:
    <DIR>    Directory to serve [default: .]

OPTIONS:
    -l, --listen <URI>    Sets the address to listen on (repeatable) [default: 127.0.0.1:3000]
                          Valid: `3000`, `127.0.0.1`, `127.0.0.1:3000` [env: PORT]
    -s, --spa             Run as a Single Page Application
    -i, --index <FILE>    Index file to serve from the base directory [default: index.html]
        --404 <FILE>      404 file to serve from the base directory [default: 404.html]
    -c, --cache <TIME>    Cache time (max-age) [default: 1h]
                          Valid: `10` for 10 seconds, `1h`, `1year 6months`
        --no-cors         Disable Cross-Origin Resource Sharing (CORS)
    -a, --all             Serve hidden files
    -f, --follow-links    Follow symlinks outside of the base directory (unsafe)
    -v, --verbose         Be verbose
    -x, --confirm-exit    Require confirmation before exiting on Ctrl+C
    -Z, --anonymize       Hide the `Server` and `X-Powered-By` headers [alias: `--anon`]
    -h, --help            Print help information
    -V, --version         Print version information

致谢

Zy最初受到sfzservehttp-server的启发。它使用Rust编写,并使用actix作为Web框架。

贡献

除非你明确声明,否则你提交给作品并有意包含在内的任何贡献,根据Apache-2.0许可证的定义,将以下双许可,不附加任何额外的条款或条件。

许可证

许可以下之一

由你选择。

依赖项

~23–35MB
~621K SLoC