Skip to content

goosedb/minion

Repository files navigation

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:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages