wisp_roadrunner

Run Wisp apps on Roadrunner.

import gleam/erlang/process
import roadrunner_gleam
import wisp
import wisp_roadrunner

pub fn main() {
  let secret_key_base = wisp.random_string(64)
  let assert Ok(_) =
    wisp_roadrunner.handler(handle_request, secret_key_base)
    |> roadrunner_gleam.new
    |> roadrunner_gleam.read_body_on_demand
    |> roadrunner_gleam.port(8000)
    |> roadrunner_gleam.start
  process.sleep_forever()
}

Values

pub fn handler(
  handler: fn(request.Request(wisp.Connection)) -> response.Response(
    wisp.Body,
  ),
  secret_key_base: String,
) -> fn(request.Request) -> response.Response(response.Body)

Turn a Wisp handler into one roadrunner_gleam runs.

Wisp reads request bodies in pieces as it needs them, up to its own limits, so run the listener with roadrunner_gleam.read_body_on_demand: otherwise roadrunner reads each body whole before the handler runs.

The secret key base signs and encrypts cookies. Use the same one each time the app runs, and keep it secret.

✨ Search Document