Hunchentoot - The CL web server formerly known as TBNL
Friday, October 13, 2006
Edi Weitz writes a lot of nicely-written and documented CL
libraries and I always enjoy using his code. So, I was recently intrigued to read that he was planning
to port his
Hunchentoot web server to multiple CL implementations (his implementation of choice is normally
although his libraries usually work on a variety of different CL
and replace his
TBNL web server with it. He
indicated: "I'm thinking about re-organizing/purifying the TBNL code-base. It
looks pretty messy to me now and I think I could get rid of a couple
of things if I find the time.". Well, in the space of a month, he's
made excellent progress and Hunchentoot is looking quite promising. I
recently decided to download it and give it a try.
First of all, there are a number of dependent libraries that need to be installed. Since CLiki is currently down (it's in the process of being moved over to the Tech Coop servers), I used Marc Battyani's Common Lisp Directory to locate the latest versions of each dependent library. In addition to the libraries that Edi lists, there are a number of additional libraries that are needed (dependencies of the dependencies, so to speak). Also, if you want to run his examples, you'll need his CL-WHO library. So, in the end, I downloaded the following:
- I also had to get the CVS versions of CL+SSL, trivial-https, and trivial-gray-streams (instructions here)
(defparameter *libssl-pathname* #+(or :win32 :mswindows) "libssl32.dll" #+(and :openmcl :darwinppc-target) "/usr/lib/libssl.dylib" #-(or :win32 :mswindows :darwinppc-target) "/usr/lib/libssl.so")With that minor fix, everything built without any problems!
After building, it was simply a matter of running the example to test things out. Hunchentoot definitely looks nice and I'll have to experiment with it a bit more in the future!