chu2-2012.11.19: readme.md
Chu2 Agda Web Server Interface
===============================
## hello world example
```agda
module Hello where
open import IO using (run; return)
open import Data.List using ([])
open import Function using (const)
open import Chu2 using (response; OK; Application)
hello-world-response = response OK [] ("Hello Agda!")
hello-world-app : Application
hello-world-app = const (return hello-world-response)
open import Chu2.Handler.SnapServer using (on-port_run)
main = run (on-port 3000 run hello-world-app)
```
## Using Middleware
```agda
module Hello2 where
-- simple-logger middleware
open import Chu2.Middleware.SimpleLogger using (simple-logger)
open import IO using (run; return)
open import Function using (const)
open import Chu2 using (Application; defaultResponse; RawMiddleware)
-- https://github.com/nfjinjing/gumi
open import Gumi.Light using (_-_)
hello-world-app : Application
hello-world-app = const - return defaultResponse
open import Chu2.Handler.SnapServer using (on-port_run)
main = run - on-port 3001 run - simple-logger hello-world-app
```
## Note
* need the Agda standard library: <http://wiki.portal.chalmers.se/agda/pmwiki.php?n=Libraries.StandardLibrary>
* need to read the Agda tutorial and be able to run Agda script from emacs: <http://www.cse.chalmers.se/~ulfn/papers/afp08/tutorial.pdf>