packages feed

hack-2009.4.20: readme.md

## Hack: a sexy Haskell Webserver Interface

Hack is a lazy port of [Rack](http://rack.rubyforge.org/): the ruby webserver interface.

### What does a hack app look like

    module Main where

    import Hack
    import Hack.Handler.Kibro

    hello :: Application
    hello = \env -> return $ Response 
        { status  = 200
        , headers = [ ("Content-Type", "text/plain") ]
        , body    = "Hello World"
        }

    main = run hello

### 1 minute tutorial

#### Install Hack

    cabal install hack

#### Install Kibro (the only handler at the moment)

    cabal install kibro

#### Install lighttpd 1.4.19 (used by kibro)

    wget http://www.lighttpd.net/download/lighttpd-1.4.19.tar.gz
    tar zxfv lighttpd-1.4.19.tar.gz
    cd lighttpd-1.4.19
    ./configure --prefix=$HOME
    make
    make install

#### Create a new Kibro project

    kibro new hello-world

### Test if Kibro works

    cd hello-world
    kibro start

### Create our hack app

put the following code in `src/Main.hs`

    module Main where

    import Hack
    import Hack.Handler.Kibro

    hello :: Application
    hello = \env -> return $ Response 
        { status  = 200
        , headers = [ ("Content-Type", "text/plain") ]
        , body    = "Hello World"
        }

    main = run hello


restart kibro

    kibro restart