Here's a minimal Hello World application using Warp 3.0+. Run it, then navigate to http://localhost:3000
. This example will show Hello world
.
In order to keep this example minimal, URL paths are not handled at all (the same content is delivered for any path). For a slightly longer example incorporating URL path handling, see the Haskell Wiki
{-# LANGUAGE OverloadedStrings #-}
import Network.Wai (responseLBS, Application)
import Network.Wai.Handler.Warp (run)
import Network.HTTP.Types (status200)
import Network.HTTP.Types.Header (hContentType)
main = do
let port = 3000
putStrLn $ "Listening on port " <> show port
run port app
app :: Application
app _req f =
f $ responseLBS status200 [(hContentType, "text/plain")] "Hello world!"