15个不稳定版本

0.7.1 2022年9月20日
0.7.0 2022年1月20日
0.6.2 2021年10月10日
0.6.1 2021年7月10日
0.0.3 2018年3月7日

HTTP服务器 中排名 769

Download history 14/week @ 2024-03-08 8/week @ 2024-03-15 3/week @ 2024-03-22 27/week @ 2024-03-29 5/week @ 2024-04-05 2/week @ 2024-04-12 2/week @ 2024-04-19 3/week @ 2024-05-17 16/week @ 2024-05-31 28/week @ 2024-06-07 7/week @ 2024-06-14 4/week @ 2024-06-21

每月下载量 55

MIT/Apache

140KB
2K SLoC

sfz

Crates.io Build Status Code Coverage Lines of Code Dependency Status

sfz,或称为 Static File Zerver,是一个简单的命令行工具,用于为您服务静态文件。

名称 sfz 源自音乐中带有重音的音符 Sforzando,意为“突然有力。”

特性

  • 目录列表
  • 部分响应(范围请求)
  • 带有缓存验证的条件请求
  • 跨源资源共享
  • 自动HTTP压缩(Brotli、Gzip、Deflate)
  • 自动渲染 index.html
  • 尊重 .gitignore 文件
  • 自定义路径前缀

安装

自动

macOS

如果您是 macOS Homebrew 用户,您可以从自定义tap安装sfz

brew tap weihanglo/sfz https://github.com/weihanglo/sfz.git
brew install sfz

免责声明:Linuxbrew上的公式尚未完全测试。

Cargo

如果您是 Rust程序员,sfz在crates.io上通过Cargo提供。

cargo install sfz

您还可以直接从GitHub安装sfz的最新版本(或特定提交)。

cargo install --git https://github.com/weihanglo/sfz.git

手册

预构建的二进制文件

预构建二进制文件的存档可在GitHub发行版中找到,适用于Linux、macOS和Windows。下载适用于您系统的兼容二进制文件。为了方便起见,请确保将sfz放置在$PATH下,以便从命令行访问它。

从源码构建

sfz是用Rust编写的。您需要安装Rust才能编译它。

$ git clone https://github.com/weihanglo/sfz.git
$ cd sfz
$ cargo build --release
$ ./target/release/sfz --version
0.7.1

用法

启动文件服务的最简单方法是运行以下命令

sfz [FLAGS] [OPTIONS] [path]

上面的命令默认将在 127.0.01:5000 上为您当前的工作目录提供服务。

如果您想服务另一个目录,请使用绝对路径或相对路径传递带有 [path] 位置参数的命令。

sfz /usr/local

# Serve files under `/usr/local` directory.
# 
# You can press ctrl-c to exit immediately.

标志和选项

sfz旨在简单但可配置。以下是可用选项列表

USAGE:
    sfz [OPTIONS] [path]

ARGS:
    <path>    Path to a directory for serving files [default: .]

OPTIONS:
    -a, --all                   Serve hidden and dot (.) files
    -b, --bind <address>        Specify bind address [default: 127.0.0.1]
    -c, --cache <seconds>       Specify max-age of HTTP caching in seconds [default: 0]
    -C, --cors                  Enable Cross-Origin Resource Sharing from any origin (*)
        --coi                   Enable Cross-Origin isolation
    -h, --help                  Print help information
    -I, --no-ignore             Don't respect gitignore file
    -L, --follow-links          Follow symlinks outside current serving base path
        --no-log                Don't log any request/response information.
    -p, --port <port>           Specify port to listen on [default: 5000]
        --path-prefix <path>    Specify an url path prefix, helpful when running behing a reverse
                                proxy
    -r, --render-index          Render existing index.html when requesting a directory.
    -V, --version               Print version information
    -Z, --unzipped              Disable HTTP compression

贡献

非常欢迎贡献!请随意打开问题或直接发送拉取请求。

鸣谢

sfz最初受到另一个静态服务工具serve的启发,sfz的目录列表UI主要借鉴自GitHub

sfz建立在令人惊叹的Rust社区之上。感谢所有Rust和crates贡献者。

许可证

本项目采用以下其中之一进行许可

任选其一。

贡献

除非您明确声明,否则根据Apache-2.0许可证定义的您有意提交给sfz的任何贡献,将按照上述方式双许可,不附加任何额外条款或条件。

依赖项

~24–37MB
~734K SLoC