Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/alexmingoia/twain
Tiny web application framework for WAI.
https://github.com/alexmingoia/twain
framework haskell web web-framework webapp-framework
Last synced: 24 days ago
JSON representation
Tiny web application framework for WAI.
- Host: GitHub
- URL: https://github.com/alexmingoia/twain
- Owner: alexmingoia
- License: bsd-3-clause
- Created: 2021-05-11T08:04:01.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-04-10T04:55:10.000Z (over 1 year ago)
- Last Synced: 2024-09-29T21:03:07.678Z (about 1 month ago)
- Topics: framework, haskell, web, web-framework, webapp-framework
- Language: Haskell
- Homepage:
- Size: 55.7 KB
- Stars: 69
- Watchers: 7
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: changelog.md
- License: LICENSE
Awesome Lists containing this project
README
# Twain
[![Hackage](https://img.shields.io/hackage/v/twain.svg?style=flat)](http://hackage.haskell.org/package/twain)
![BSD3 License](http://img.shields.io/badge/license-BSD3-brightgreen.svg)Twain is a tiny web application framework for
[WAI](http://hackage.haskell.org/package/wai).- `ResponderM` for composing responses with do notation.
- Routing with path captures that decompose `ResponderM` into middleware.
- Parameter parsing from cookies, path, query, and body.
- Helpers for redirects, headers, status codes, and errors.```haskell
{-# language OverloadedStrings #-}import Network.Wai.Handler.Warp (run)
import Web.Twainmain :: IO ()
main = do
run 8080 $
foldr ($) (notFound missing) routesroutes :: [Middleware]
routes =
[ get "/" index
, post "/echo/:name" echoName
]index :: ResponderM a
index = send $ html "Hello World!"echoName :: ResponderM a
echoName = do
name <- param "name"
send $ html $ "Hello, " <> namemissing :: ResponderM a
missing = send $ html "Not found..."
```