The miku package

[Tags: bsd3, library]

A simple library for fast web prototyping in Haskell.


[Skip to ReadMe]

Properties

Versions2011.6.11, 2011.6.12, 2011.6.15, 2011.6.18, 2011.6.19, 2011.6.20, 2011.6.24, 2012.1.19, 2012.10.27, 2014.4.14, 2014.5.19, 2014.11.17, 2016.3.16, 2016.3.16.1, 2016.3.17
Change logchangelog.md
Dependenciesbase (>4 && <=6), blaze-builder (>=0.4.0.1), bytestring, case-insensitive (>=1.2.0.5), containers, filepath (>=1.4.0.0), http-types (>=0.9), mtl, wai, wai-extra [details]
LicenseBSD3
AuthorJinjing Wang
MaintainerJinjing Wang <nfjinjing@gmail.com>
CategoryWeb
Home pagehttps://github.com/nfjinjing/miku
Source repositoryhead: git clone git://github.com/nfjinjing/miku.git
UploadedWed Mar 16 23:22:56 UTC 2016 by JinjingWang
DistributionsNixOS:2016.3.17
Downloads2091 total (28 in last 30 days)
Votes
0 []
StatusDocs available [build log]
Last success reported on 2016-03-16 [all 1 reports]

Modules

[Index]

Downloads

Maintainers' corner

For package maintainers and hackage trustees

Readme for miku-2016.3.17

miku

A tiny web dev DSL

Example

{-# LANGUAGE OverloadedStrings #-}

import           Network.Miku
import           Network.Wai.Handler.Warp (run)

main :: IO ()
main = run 3000 . miku $ get "/" (text "miku power")

Installation

cabal update
cabal install miku
cabal install warp 

-- copy and paste the above example to myapp.hs

runghc myapp.hs

check: http://localhost:3000

Quick reference

https://github.com/nfjinjing/miku/blob/master/test/RouteExample.hs

Routes

Verbs

{-# LANGUAGE OverloadedStrings #-}

import Network.Miku
import Network.Miku.Utils ((-))
import Network.Wai.Handler.Warp (run)
import Prelude hiding ((-))

main = run 3000 . miku - do

  get "/" - do
    -- something for a get request

  post "/" - do
    -- for a post request

  put "/" - do
    -- put ..

  delete "/" - do
    -- ..

Captures

get "/say/:user/:message" - do
  text . show =<< captures

-- /say/miku/hello will output
-- [("user","miku"),("message","hello")]

WAI integration

Use WAI middleware

import Network.Wai.Middleware.RequestLogger

middleware logStdout

Convert miku into a WAI application

-- in Network.Miku.Engine

miku :: MikuMonad -> Application

Hints

Reference