6 releases

0.2.0 Nov 6, 2022
0.1.4 Oct 30, 2022

#1292 in HTTP server

MIT/Apache

28KB
553 lines

Zy

Minimal and blazing-fast file server. For real, this time.

Features

Installation

You can download any of the pre-compiled binaries from the releases page.

Or if you already have Rust installed, you can install it with cargo:

  • Please, note that the minimum supported version of Rust for zy is 1.59.0.
  • Also, that the binary may be bigger than expected because it contains debug symbols. This is intentional. To remove debug symbols and therefore reduce the file size, you can instead run it with the --profile slim or simply just run strip on it.
cargo install zy

Alternatively, you can also build the latest version of zy directly from GitHub.

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

Usage

zy

This will start serving your current directory on http://localhost:3000 by default.

...you can also specify a different port or base directory:

zy /path/to/serve

...or perhaps different addresses:

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

Configuration

You can run zy --help to see all available options.

$ 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

Credits

Zy was originally inspired by sfz, serve and http-server. It is written in Rust and uses actix as the web framework.

Contribution

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

License

Licensed under either of

at your option.

Dependencies

~24–39MB
~645K SLoC