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?
- blog: icing-lightweight-web-development-in-scheme
- blog: icing-snapshot-20060721
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!