command-line proxy server
This tool is intended for:
- A quick stand-in for a real proxy server (For development purposes only).
- A very simple static site/file server
Pre-compiled executables
See releases
Build from crates.io
cargo install cli-proxy
Build from source
- clone this repo
cargo build --release
- Self update functionality (from GitHub releases) is available behind
--features update
- Binary
releases
are compiled with theupdate
feature - If you've downloaded a binary release, you can update to latest GitHub release via:
proxy self update
Development proxy
# - listen on `localhost:3000`
# - serve requests starting with `/static/` from the relative path `static/`
# - serve requests starting with `/media/` from the absolute path `/abs/path/to/media
# - serve requests starting with `/assets/` from the relative path `assets`
# - proxy requests starting with `/api/` to `localhost:4001`
# - proxy requests starting with `/status/` to `localhost:4002`
# - proxy remaining requests to `localhost:3002`
proxy serve \
--port 3000 \
--static /static/,static/ \
--static /media/,/abs/path/to/media \
-s /assets/,assets \
--sub-proxy /api/,localhost:4001 \
-P /status/,localhost:4002 \
localhost:3002
Static site server
# - generate crate documentation
cargo doc
# - serve / request with target/doc/<crate>/index.html
# - serve static files starting with "/" from target/doc
# - serve static files starting with "/" from target/doc/<crate>
proxy serve . \
--file /,target/doc/<crate>/index.html,text/html \
--static /,target/doc \
--static /,target/doc/<crate>
Static file server
# - serve static files from the current directory
proxy fs .