Wookie, named after my dog Wookie, started out as an async port of the excellent Hunchentoot server. As I got deeper in, I realized that Hunchentoot was, at its core, built to be threaded. If converted, it would forever live out its days as the strange genetic freak baby of synchronous and asynchronous.

Once I realized this, I started experimenting with doing HTTP in async. The most difficult part is correctly parsing the protocol. I built a separate library for parsing HTTP that can be used both synchronously (say, with usocket) or asynchronously with something like cl-async. After finishing http-parse, I started some very basic work to plug it into cl-async.

Wookie was born!

Since then, http-parse has been replaced by the blazing fast fast-http, and Wookie has matured quite a bit. It has managed to keep its core small and support any needed functionality via its plugin system. This makes Wookie fast, lean, and simple.

Wookie is now being used in production in many places, including the Turtl project, where it serves both the API server and the turtl.it website.

The dog (Wookie)

The webserver is named after my dog, Wookie. He's easily angered, image-obsessed, and make sounds like a wookie when squeezed. This project is dedicated to him.