nelsonmestevao / francis

Simple boilerplate killer using Bandit and Plug

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Francis

Nothing is stable! Try it out with caution

Simple boilerplate killer using Plug and Bandit inspired by Sinatra for Ruby

Installation

If available in Hex, the package can be installed by adding francis to your list of dependencies in mix.exs:

def deps do
  [
    {:francis, "~> 0.1.0-pre"}
  ]
end

Example

defmodule Example do
  use Francis

  get("/", fn _ -> "<html>world</html>" end)
  get("/:name", fn %{params: %{"name" => name}} -> "hello #{name}" end)

  ws("ws", fn "ping" -> "pong" end)

  unmatched(fn _ -> "not found" end)
end

Example using it with Mix.install

  # create a new file called server.ex
  Mix.install([:francis])
  
  defmodule Example do
    use Francis
  
    get("/", fn _ -> "<html>world</html>" end)
    get("/:name", fn %{params: %{"name" => name}} -> "hello #{name}" end)
  
    ws("ws", fn "ping" -> "pong" end)
  
    unmatched(fn _ -> "not found" end)
  
    def start(_, _) do
      children = [{Bandit, [plug: __MODULE__]}]
      Supervisor.start_link(children, strategy: :one_for_one)
    end
  end
  
  Example.start(nil, nil)
  Process.sleep(:infinity)
  # run this file with elixir server.ex

Check the folder example to check the code.

About

Simple boilerplate killer using Bandit and Plug

License:MIT License


Languages

Language:Elixir 100.0%