Writing AJAX applications in Haskell

By: on July 13, 2006

How easy is it to write an AJAX application in Haskell? Very easy indeed. Here’s a little example of an AJAX server that echoes JSON requests:

    module Main where

    import Data.Maybe (fromJust)
    import JSON
    import Network.NewCGI

    jsonEcho :: CGI CGIResult
    jsonEcho = do jsonString <- getInput "json"
                  setHeader "Content-type" "application/x-javascript"
                  output $ (stringify . fromJust . parse . fromJust) jsonString

    main = runCGI jsonEcho

To get this to compile you need the following haskell libraries: Fast Packed Strings (needed by
haskell-cgi), XHTML combinators) (needed by haskell-cgi), haskell-cgi), and JSON.hs)

The resulting executable can be installed on any web server that supports cgi scripts. For my tests I configured apache with cgi execution enabled in user directories. You can download the little example app here. The client code employs the json and prototype Javascript libraries.

The JSON.hs file included in this distribution is a slightly modified version of the one listed above which adds support for Ints.



  1. Alberto says:

    Very interesting indeed

  2. Paul Brown says:

    Short, sweet, and timely. I was just looking for a JSON library for Haskell, as a matter of fact…

  3. Robin Bate Boerop says:

    Your article is well focused and densely packed with relevant information. Useful. Thank you.

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>