technology from back to front

Icing

What is it?

Icing is a collection of components that, taken together, form a simple web-development framework. Icing is a set of Scheme libraries, built atop SISCweb and making use of SXML and SXpath, that support servlet development within a J2EE environment. It includes:

  • 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
  • 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 very new; we're currently in the process of documenting it, packaging it conveniently for use in other applications, and deciding how to split it into separate individually-reusable components.

How does it work?

Where do I get it?

Icing is freely available under the liberal MIT open source license.

We've uploaded a snapshot of Icing, including its dependent xml.pipeline library. You'll need to have a Tomcat v4.1.30 installation available. Newer versions of Tomcat probably work, but are not guaranteed to.

Download icing-20060721.tar.gz, and unpack it somewhere convenient. Installation instructions are in the README file in the icing/icing-20060721 directory.

Do note that this is a snapshot release, and as such is full of rough edges!

References

2000-13 LShift Ltd, 1st Floor, Hoxton Point, 6 Rufus Street, London, N1 6PE, UK+44 (0)20 7729 7060