9 releases (4 breaking)

0.5.0 Sep 3, 2024
0.4.0 Sep 1, 2024
0.3.1 Mar 5, 2024
0.2.4 Mar 4, 2024
0.1.0 Dec 9, 2023

#410 in HTTP server

MIT license

60KB
1.5K SLoC

barebones http scripting

Overview

Define routes on runtime and execute scripts associated with each route. The server supports fetching data, for proxy purposes.

Usage

// the index route
index {
   text(":3\nwelcome to the root")
}

// this is /hello
hello() {
   text("Hello World!")
}

// get data from another website, then return as json
tests/fetch() {
   json(http::get("https://httpbin.org/json").json())
}

// route placeholders
#[route("/example/{id}")]
example(id) {
   text("base: " + id)
}

For more syntax, check out app.routes

# Start the server
script start <filename>

For more commands, check out script --help

Installation

Pre-built binaries for Linux, MacOS, and Windows can be found on the releases page.

Install from crates.io using cargo install script

Building

  • Clone the project
  • Open a terminal in the project folder
  • Check if you have cargo (Rust's package manager) installed, just type in cargo
  • If cargo is installed, run cargo build --release
  • Put the executable into one of your PATH entries, usually /bin/ or /usr/bin/

Dependencies

~62MB
~1M SLoC