This page is of largely historical interest, if any at all.


I called this page “application framework” rather than "web application framework” on purpose, although the latter is largely what I’m looking at.

Here’s what I’d like:


CherryPy looks like an interesting, and very lightweight, web publishing framework. It maps URIs to objects in a simple and flexible way, and contains its own little web server. Reminds me of Jon Udell's dhttp experiment!

Might be a nice substrate for a wiki+blog.

Webpy looks interesting, too. Lightweight, and the right way to map URIs to “actions”. Python, of course. --Michael Pruemm


2005 December 20 14:47

Thinking about this some more, I realize that I have two applications in mind with somewhat different requirements.

Simple blog & wiki engine

This should run under Apache (or lighttpd), either as a CGI script or thru FastCGI, and should be dead simple. It should use the “native” filesystem for storage (no database), and should have a common wiki-like markup for both the blog and wiki. I’m thinking of doing this in Python, Ocaml, & Haskell, and comparing notes. I don’t expect any of the implementations to be much more than 1000 lines. (This wiki is ~900 lines of Perl.)

Desktop groupware engine

This is the technically more interesting application. I’d like to see something like Jon Udell's dhttp (distributed HTTP) – a small, self-contained web server, integrated with local data sources – but even more capable. The install is simple (“untar” a bundle of code into a directory), and has few or no outside dependencies.

This is where Twisted would shine. I’d like to see an integrated suite of Internet protocols (but in lightweight implementations), together with database connectivity, and access methods for the local user’s data. (The point here is to share work and data with your peers.)

Of course, I’d much rather see it implemented in Ocaml or Haskell than in Python.

Having the ability to make LDAP queries, or run an LDAP server, or make NNTP connections (as client or server), could be powerful ingredients for groupware applications.

I’m not sure exactly what this is good for yet, but I think the possibilities are endless.