[Haskell-cafe] ANN: Cute Hack - Hyena handler + Bamboo Blog
nfjinjing at gmail.com
Sat Apr 25 07:22:45 EDT 2009
Yes, the spec is almost a direct translation from Rack.
For middleware, I translated some from Rack, but it does not have to
be a port. I'm just lazy.
Rack borrowed some basic middleware from WSGI too, like Lint.
About the style, it's a bit weird, yes. But only in module scope ;)
On Sat, Apr 25, 2009 at 7:00 PM, Sebastiaan Visser <sfvisser at cs.uu.nl> wrote:
> What kind of port is this? Direct translation from ruby source?
> I see that you are using the (.) for OO-style reversed function application.
> Which feels a bit weird at first sight.
> Snippet from your Hack.Handler.Kibro:
>>handle app = do
>> env <- get_env
>> response <- app env .liftIO
>> -- set response
>> response.headers.mapM_ (splash setHeader)
>> response.status.show.setHeader "Status"
> On Apr 25, 2009, at 7:58 AM, Jinjing Wang wrote:
>> A few interesting progress on Hack:
>> * many middleware ported from Rack, including a lambda! ( just like a
>> pony for wsgi, and a lobster for rack )
>> * 2 handlers, one for Kibro on fcgi / lighttpd, one for Hyena web server
>> * apps are portable, Bamboo is a port of Panda that runs on Hack,
>> works fine with both handlers
>> * Hyena handler is still experimental
>> A lambda app looks like this
>> -- Main.hs source
>> module Main where
>> import Hack
>> import Hack.Utils
>> import Hack.Handler.Hyena
>> import Hack.Contrib.Lambda
>> main = run $ lambda dummy_app
>> -- compile
>> ghc --make -O2 Main.hs
>> -- run
>> now go to http://localhost:3000/lambda
>> * [Hack] (http://github.com/nfjinjing/hack/tree/master)
>> * [Bamboo] (http://github.com/nfjinjing/bamboo/tree/master)
More information about the Haskell-Cafe