Sorry for the late guys! I planed to give you a lightweight web-framework, and you may use it to build your own site with Guile easily. Besides, with Guile's inner web-server, you could have 10K concurrency performance.
But life is no so perfect, I was sick for few days, so I'm late for the potluck. When I tried to polish it more beautiful, I found a bug in web module (anyway it's a nice discover for a hacker). Seems that I have to release it as a half-baked one :-( But good news is that I'll continue to polish it. I put here: https://gitorious.org/glow/artanis Let me introduce it: * very lightweight: the core artanis.scm almost 300 lines, easy to hack and learn for newbies. * a relative complete web-server implementation, include error page throw and all the HTTP method(you have to specify your own handler) * 10K concurrent performance for the server, takes advantage of the Guile inner server. IIRC, andy once said it's 9K+ for static pages. It's enough for you own site/blog. * sinatra like style route, that's why it names "artanis" ;-) * Database support(now use guile-dbi), mysql/sqlite/postgresql. But it's easy to port to other database binding. (but I like dbi) * session support (thanks for andy's advice) * HTML template of SXML (very easy to use for Lisper) I have no time to write a tutorial for it before I release, but there'll be one soon. And you may read test.scm/blog.scm to get to know how it works. https://gitorious.org/glow/artanis/blobs/master/test.scm https://gitorious.org/glow/artanis/blobs/master/blog.scm (for blog.scm, you may need blogdb.mysql script to build your database quickly) You may write a blog in ten minutes if you're familiar with web develop and SQL. PS: and I have to mention that bug, I believe it's a bug. When the server-handler get the request, I found the uri in request have no 'host', it's #f. It causes trouble for me to implement url redirect mechanism, which used to implement admin authentication. I do think uri should keep 'host' value because it's useful for later. And it's OK for 'read-request-line', it'll parse and store 'host' correctly. I think there's some link in the inner server module, which dropped 'host' value or created a new uri and throw the old-correct one. Any comments? Sorry again for the half-baked work, it looks no cool. But I've ever planed a perfect one... :-(