[web-devel] What frameworks are there?

Sebastiaan Visser sfvisser at cs.uu.nl
Thu Apr 8 10:45:37 EDT 2010


What functionality do you need? What do you want this `framework' to offer you? There are plenty of packages for Haskell that help you to write web applications, all of them offering some functionality. It's very unlikely you'll find one single package that satisfies all your requirements.

I advice you to look around and see what package there are and how these might help you.

For example, I'm currently thinking about building a web application using:
  - The Salvia server interface (not surprisingly, this one is written by me)
  - The Haskell bindings to the Berkeley XML database for long-term storage.
  - The Salvia-session package for in-memory session storage.
  - The HXT xml library.
  - The regular-xmlpickler for generic XML printing/parsing (using HXT picklers).
  - The BlazeHtml package for building up HTML pages (fast).
  - The formlets package for generating flexible web forms.
  - The CleverCSS package (and salvia integration) for improved css support.
  - probably even more...

Although I agree it is not always easy to get a grip on what are the best techniques available for Haskell web development, there are plenty of tools available. It will probably take some time to get to know all these libraries, but due to the clear separation of concerns and Haskell's neat type system, integration is almost never a problem.

I sincerely hope this might help you and does not scare you :-)



On Apr 8, 2010, at 3:29 PM, Kyle Murphy wrote:
> -R. Kyle Murphy
> --
> Curiosity was framed, Ignorance killed the cat.
> On Thu, Apr 8, 2010 at 04:17, Alistair Bayley <alistair at abayley.org> wrote:
> Uh...
> >From http://hackage.haskell.org/packages/pkg-list.html#cat:web
> 1. happs
> 2. yesod
> 3. hack 
> 4. salvia
> 5. kibro
> 6. hsp  (barely a framework, I think)
> From the descriptions of those all but kibro, and happs/yesod which have been mentioned, I would classify as bits of frameworks, rather than a full framework like happs or yesod. Kibro looks interesting, but I can't find any documentation at all but the rather meager hadoc info on hackage itself, which tells me next to nothing about the framework. It also looks like Kibro is a CGI framework and not a full application server. 
> Other frameworks not on hackage, possibly not under active development:
> 7. hvac ( http://fmapfixreturn.wordpress.com/2008/03/23/ann-hvac-01b-a-transactional-declarative-framework-for-lightweight-web-applications/
> )
> 8. turbinado ( possibly abandoned: http://github.com/alsonkemp/turbinado )
> 9. WASH  ( http://www.haskell.org/haskellwiki/WaSh ,
> http://www.informatik.uni-freiburg.de/~thiemann/WASH/ )
> Hadn't heard of Turbinado and I'm checking that out now (it at least has some documentation even if a few of the links seem to be broken). WASH likewise looks interesting, although I'm not terribly thrilled about using CGI (I will if I have to, but I'd be more comfortable with a full application server). hvac looks like it has potential, although the lack of documentation probably means I won't be using it.
> There are some other bits which don't qualify as full frameworks, but
> might well be useful in their own right:
>  - HStringTemplate
>  - formlets
> And there's bound to be stuff that I've missed.
> Alistair
> Yes, and I've actually looked at both HStringTemplate and formlets (briefly) with the idea to either use them in conjunction with one of the other frameworks (Yesod I know uses HStringTemplate, at least for the moment, and I think Happs has some integration with formlets).
> As was mentioned by Gour in another followup to this, there's also Hakyll, which is an interesting possibility, but I'm not sure I'd be happy with the result. In particular it would ruin my plans for integrating with Google Checkout as I was planning on using the server side XML interface.
> Based on the feedback I've gotten so far, my list of possibilities in order of preferance seems to be:
> 1) Yesod
> 2) Turbinado (might change, need to look at this more)
> 3) Happs
> 4) WASH
> 5) Hakyll (if I can stomache using static generation)
> 6) All the poorly documented ones like hvac, and kibro
> 7) Roll my own out of the various pieces

More information about the web-devel mailing list