I just released WebClient and WebServer 1.0 for Squeak 4.1. This project started about half a year ago when I realized that I had just written the third almost-but-not-quite complete HTTP server implementation internally. The thing is, HTTP servers and clients are tremendously useful. Having a small and compact implementation offers all sorts of interesting uses. For example, we use HTTP as command and control interface for various backend server aspects; be that generating status XML for processing by a front-end php app, or profiling of the live application, or RTSP handling, or server-to-server communication. Given all these interesting simple applications I figured it was about time to write a simple general purpose HTTP server (yes, Kom, I’m looking at you).
While writing it I quickly noticed that I need an accompanying client since HTTPSocket was just too awful for testing. It’s incomplete, inconsistent and broken in lots of interesting ways. The good thing is that since both client and server share much of the representation, the overhead is very small.
As a result, we now have what I think is a pretty decent HTTP server and client implementation for Squeak 4.1 and hopefully we can nuke HTTPSocket sometime soon. WebClient is superior in every respect.
The project is hosted on Squeaksource.