Kristian Lyngstøl's Blog

Announcing Spew

Posted on 2012-04-25

I just pushed my HTTP request spewer, spew, to github.

http://github.com/varnish/spew

It's Linux-specific, since it uses epoll, and the http.c-code is still nasty, but it's also fast.

A reminder of what it can do:

http://kly.no/misc/no_stress_2.png

The feature list contains:

  • Spew opens N connections, sends M requests over each connection and then re-opens the connection and repeats.
  • Fast request generation
  • "Keep-Alive support" (sort of!)
  • No analysis at all.
  • Native IPv6 support
  • Configurable, both on the command line and config file
  • It survives despite what happens if you bring your HTTP server down for a moment. It might need some time to catch up, though.

Most of the boilerplate code is actually from an old defunct project I abandoned in 2009. All the stuff that deals with options and config files and debug messages and whatnot. The only thing I've done recently is src/http.c and integration.

Also: I know the code is still horrible. Patches are welcome, as are requests, (constructive!) comments, etc.