operator

Crates.iooperator
lib.rsoperator
version0.6.3
sourcesrc
created_at2020-09-02 03:25:04.778475
updated_at2024-07-13 13:43:59.199308
descriptionA web server for static and dynamic content
homepagehttps://operator.mattkantor.com
repositoryhttps://github.com/mkantor/operator
max_upload_size
id283727
size290,816
Matt Kantor (mkantor)

documentation

README

Operator

Operator is a web server. You provide a directory and Operator serves it over HTTP.

It serves static files the way you'd expect, but it can also serve dynamic content that is generated at request time by handlebars templates or executables.

More information is available on the Operator website.

Installation

Operator is a single self-contained binary. You can download a build from the releases list, unzip it, and run it from any working directory.

Usage

The CLI has three subcommands:

  1. eval evaluates a handlebars template from STDIN.
  2. get renders content from a content directory.
  3. serve starts an HTTP server.

serve is where the real action is, but the other two come in handy at times.

These commands all require a content directory, which is just the folder where your website lives. There are a bunch of sample content directories in samples/.

To learn more, run operator --help or operator <SUBCOMMAND> --help.

Developer Quick Start

Let's run a server for one of the samples:

git clone git@github.com:mkantor/operator.git
cd operator
cargo run -- -vv serve \
  --content-directory=samples/realistic-advanced \
  --index-route=/home \
  --error-handler-route=/error-handler \
  --bind-to=127.0.0.1:8080

Then open http://localhost:8080 in your browser of choice.

Disclaimer

Operator is very young and has not been battle-hardened. There are known flaws and obvious missing features that need to be addressed. The major ones are filed as issues. All feedback is greatly appreciated.

This is my first nontrivial Rust project and I'm sure there are places where things could be improved. One of the reasons I created Operator was to get more experience with the language, so if you notice anything iffy (no matter how small), please open an issue to help me out! ❤️


Operator

Commit count: 457

cargo fmt