A simple static file serving command-line tool written in Rust.
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 in music, which means “suddenly with force.”
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 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
Archives of prebuilt binaries are available on GitHub 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.
sfz is written in Rust. You need to 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.6.2
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
If you want to serve another directory, pass
[path]positional argument in with either absolute or relaitve path.
Serve files under
You can press ctrl-c to exit immediately.
sfz aims to be simple but configurable. Here is a list of available options:
USAGE: sfz [FLAGS] [OPTIONS] [path]
FLAGS: -a, --all Serve hidden and dot (.) files -C, --cors Enable Cross-Origin Resource Sharing from any origin (*) -L, --follow-links Follow symlinks outside current serving base path -h, --help Prints help information -I, --no-ignore Don't respect gitignore file --no-log Don't log any request/response information. -r, --render-index Render existing index.html when requesting a directory. -Z, --unzipped Disable HTTP compression -V, --version Prints version information
OPTIONS: -b, --bindSpecify bind address [default: 127.0.0.1] -c, --cache Specify max-age of HTTP caching in seconds [default: 0] --path-prefix Specify an url path prefix, helpful when running behing a reverse proxy -p, --port Specify port to listen on [default: 5000]
ARGS: Path to a directory for serving files [default: .]
Contributions are highly appreciated! Feel free to open issues or send pull requests directly.
sfz is built on the top of awesome Rust community. Thanks for all Rust and crates contributors.
This project is licensed under either of
at your option.
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.