[Haskell-cafe] What is the maturity of Haskell Web Frameworks

Sterling Clover s.clover at gmail.com
Wed Jun 4 15:00:08 EDT 2008

> hvac sounds interesting but at that time at least it was not clear
> whether it was stable or would continue to be maintained.
> xhtml and HStringTemplate were overkill for what I wanted, so I  
> wound up
> just using the FastCGI and CGI toolkits themselves.  They are
> surprisingly nice, and with a little bit of wrappers around them for
> things like validating forms, have worked exceptionally well.

I'm in a position now where I can make a reasonable promise that hvac  
will not only be maintained but undergoing continued development. I  
just, for example, hooked in some basic postgresql support yesterday  
(although the changes are not tested/pushed to the repo yet).  
(Speaking of which, I noticed that the HDBC postgresql bindings don't  
set seState on an error -- is this intentional, or something that  
should be fixed up?)

As such though, I also can't promise that hvac as it stands is  
officially stable, although most work I imagine that will be done on  
it will consist of extensions rather than API-breaking changes.

I've also been working on a lightweight testing API for programs  
using the CGI monad, integrated with quickcheck. Although this  
project isn't "final" yet either, there's a working repo at http:// 
code.haskell.org/~sclv/cgicheck/ if anyone wants to play with it/use  
it. I plan to use this quite a bit to test hvac, and any applications  
produced using it.

Additionally, the hvac code now has a nice, though also incomplete  
orm/dsl-type library for database access (also built on top of HDBC).  
When I feel more confident/polished in the code there, I plan to  
split it out and hackage it as well.

Of course, folks with a little time/inclination who play with these  
things a bit and put them through the paces are a big help in working  
out the kinks such that I feel they're closer to "release- 
quality" (even if that "release" *is* only 0.1). :-)

Relatedly, I'd be very interested in developing a single common  
library for encoding/escaping/decoding/unescaping of common web  
formats (urls, javascript, basic xss escaping, rss-valid character  
escapes to html-valid ones, etc.) that uses a lightweight invertible  
combinator approach as described in Pierce's work on lenses (various  
papers at http://www.seas.upenn.edu/~harmony/) such that the encode/ 
decode methods are correct-by-construction bijections. There are  
various encoding bits scattered among the Haskell web libraries at  
the moment, each with varying degrees of correctness and conformance.  
It would be nice to direct energy here to a single centralized  
project, which would have some upfront architecture, and then,  
unfortunately, probably no small degree of spec-translation. If  
anyone else is interested in working on such a thing, I'd be  
delighted for ideas/collaboration (or better yet, if someone just  
picked up the idea and ran with it themselves!) (hmm... maybe galois  
has some internal libraries it wouldn't mind sharing as a partial  


More information about the Haskell-Cafe mailing list