Icing: Lightweight web development in Scheme

May 22nd, 2006 tonyg

As part of a recent development project, we’ve assembled pieces from SISCweb, SSAX and SXPath, and some of our own code to build a simple web-development framework we’ve tentatively named Icing.

Icing, so far, consists of:

  • a simple bean-like layer atop raw SQL, with an S-expression based SQL syntax and objects representing table rows;

  • a small library (not quite the same as SISCweb’s approach) to allow pattern-matching on the URLs of incoming requests, and to allow attaching handlers to matched URLs;

  • libraries for using JavaMail to construct and send arbitrary MIME multipart message parts and for using BouncyCastle’s PGP implementation with JavaMail to build PGP MIME email bodies and attachments; and

  • a XSLT-template-based Model-View-Controller-plus-Workflow framework for structuring applications. HTML templates (with special attributes and with optional embedded XSLT instructions) form the View; Scheme code forms the Controller; the DB layer referred to above forms the core of the Model; and SISCweb’s support for continuation-based web programming forms the Workflow.

The software is still being hammered into shape; we’re currently in the process of documenting it, packaging it conveniently for use in other applications, and deciding how we want to release it — it could be released as a thing-in-itself, bundling together a collection of third-party libraries, or we could instead take Icing to pieces, and fold some of the parts back into SISCweb (if SISCweb’s author, Alessandro Colomba, approves, of course).

I’ve made the slides from the presentation on Icing I gave last week available. They’re the only real documentation the code has at present, but ought to give a feel for the kind of approach we’re taking with it.

Entry Filed under: Our Software

3 Comments Add your own

  • 1. mikeb  |  May 22nd, 2006 at 4:28 pm

    I like the colour-coded code snippets, although when there is more than one snippet it gets quite uh, busy.

    Pages 38 and 39 have broken images.

  • 2. tonyg  |  May 22nd, 2006 at 6:14 pm

    :-) Pages 38 and 39 are off the end. The javascript slide-show presenter is presently too stupid to detect the end of the slide-show… See also this article from a couple of days ago.

  • 3. gherson  |  May 25th, 2006 at 12:47 am

    impressive.

    Does J2EE pull its weight here? How about leaving it behind in favor of a pure plt-scheme implementation?

Leave a Comment

Required

Required, hidden

Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

Trackback this post  |  Subscribe to the comments via RSS Feed

Calendar

May 2006
M T W T F S S
« Apr   Jun »
1234567
891011121314
15161718192021
22232425262728
293031  

Most Recent Posts