weihanglo
sfz
Rust

A simple static file serving command-line tool written in Rust.

Last updated Mar 30, 2026
395
Stars
28
Forks
0
Issues
0
Stars/day
Attention Score
41
Language breakdown
Rust 95.5%
HTML 2.7%
CSS 1.0%
Ruby 0.7%
β–Έ Files click to expand
README
Thank you for using this tool so far. Unfortunately I have no time
maintaining it, but I believe people can find a better alternative
out there on crates.io.
>
If you are still interested in supporting Rust and its community, please
consider sponsoring Rust developers you like. You can find a few from
the official Rust teams,
or just buy me a coffee ❀️.

[sfz][sfz]

Crates.io Build Status Code Coverage [Lines of Code][sfz] Dependency Status

sfz, or Static File Zerver, is a simple command-line tool serving static files for you.

The name sfz is derived from an accented note [Sforzando][sforzando] in music, which means β€œsuddenly with force.”

[sfz]: https://github.com/weihanglo/sfz [sforzando]: https://en.wikipedia.org/wiki/Dynamics(music)#Suddenchangesandaccented_notes

Features

  • Directory listing
  • Partial responses (range requests)
  • Conditional requests with cache validations
  • Cross-origin resource sharing
  • Automatic HTTP compression (Brotli, Gzip, Deflate)
  • Automatic rendering index.html
  • Respect .gitignore file
  • Customize path prefix

Installation

Automatic

macOS

If you are a macOS Homebrew user, you can install sfz from a custom tap:

brew tap weihanglo/sfz https://github.com/weihanglo/sfz.git
brew install sfz
Disclaimer: Formula on Linuxbrew did not fully tested.

Cargo

If you are a Rust programmer, sfz are available on [crates.io][crates.io] via [Cargo][cargo].

cargo install sfz

You can also install the latest version (or a specific commit) of sfz directly from GitHub.

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

[crates.io]: https://crates.io [cargo]: https://doc.rust-lang.org/cargo/

Manual

Prebuilt binaries

Archives of prebuilt binaries are available on [GitHub Release][gh-release] for Linux, maxOS and Windows. Download a compatible binary for your system. For convenience, make sure you place sfz under $PATH if you want access it from the command line.

[gh-release]: https://github.com/weihanglo/sfz/releases

Build from source

sfz is written in Rust. You need to [install Rust][install-rust] in order to compile it.

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

[install-rust]: https://www.rust-lang.org/install.html

Usage

The simplest way to start serving files is to run this command:

sfz [FLAGS] [OPTIONS] [path]

The command above will start serving your current working directory on 127.0.0.1:5000 by default.

If you want to serve another directory, pass [path] positional argument in with either absolute or relaitve path.

sfz /usr/local

Serve files under /usr/local directory.

#

You can press ctrl-c to exit immediately.

Flags and Options

sfz aims to be simple but configurable. Here is a list of available options:

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

Contributing

Contributions are highly appreciated! Feel free to open issues or send pull requests directly.

Credits

sfz was originally inspired by another static serving tool [serve][serve], and sfz's directory-listing UI is mainly borrowed from [GitHub][github].

sfz is built on the top of awesome Rust community. Thanks for all Rust and crates contributors.

[serve]: https://github.com/zeit/serve [github]: https://github.com/

License

This project is licensed under either of

  • Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
  • MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in sfz by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

πŸ”— More in this category

Β© 2026 GitRepoTrend Β· weihanglo/sfz Β· Updated daily from GitHub