@hackage minion0.1.0.1

A Haskell introspectable web router

Minion

Minion is Haskell library for developing web applications. It stands between Scotty and Servant

Scotty Minion Servant
As simple as ABC Yes No No
At term level Yes Yes No
Typesafe No Yes Yes
Introspectable No Yes Yes
Generated client No No Yes

Since Minion defines servers at the term level, it's easier to start and without excess verbosity.

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE OverloadedLists #-}
module Main where

import Web.Minion
import Network.Wai.Handler.Warp qualified as Warp

main :: IO ()
main = Warp.run 9001 app

app :: ApplicationM IO
app = serve api 

api :: Router Void IO
api = "api" /> 
    [ "about" /> handlePlainText @String GET (pure "Hello-World Minion server")
    , "hello" /> capture @String "name" 
              .> handlePlainText @String GET (\name -> pure $ "Hello, " <> name <> "!")
    ]

Documentation and examples can be found on Hackage

Minion ecosystem also contains following libraries: