11 releases

Uses old Rust 2015

0.3.5 Feb 5, 2018
0.3.4 Feb 4, 2018
0.3.2 Dec 5, 2017
0.3.1 Oct 24, 2017
0.1.4 Oct 15, 2017

#91 in #file-server

MIT license

24KB
412 lines

proxy

Build status Build Status crates.io:cli-proxy

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

Installation

See releases,

cargo install cli-proxy,

Or build from source:

  • clone this repo
  • cargo build --release

Updates:

  • Self update functionality (from github releases) is available behind --features update
  • Binary releases are compiled with the update feature
  • proxy self update

Usage

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 .

Dependencies

~13–28MB
~450K SLoC