Reattore is a simple single threaded HTTP server written in Java. Unlike most Java server applications, Reattore uses the socket channel features added in Java 1.4 to serve all requests from one thread, instead of spawning each request off to a new thread. In theory this provides better performance and allows the system to degrade well under high load.


Reattore is primarily a vessel to allow the author to experiment with new tools and techniques. In other words the techniques and tools learnt on the way are more important than the end product. In particular I plan to try tools such Maven (an automatic website generator), checkstyle (a coding style enforcer), JUnit (a unit testing framework), and techniques from Extreme Programming such as "Small Releases", "Simple Design", "Test-Driven Design", and "Continuous Integration". I'm not sure that the Extreme Programming methodology applies to many classes of project, but it will be interesting to see with this one.

Status and Limitations

See the current task list for a list of the limitations of Reattore.

How to play around

Download a binary, and have a look at the README file. This web site contains most of the meta information. The source distribution contains the control files for all of the tools, and might be useful for other projects that wish to use these tools.