Following Rahul's excellent example for SquidCache, I've compiled a list of Lighttpd features either enabled or disabled at build time for various distros of Lighttpd and added a brief description of what you get when you enable each. These features are enabled/disabled via flags passed to the configure script.
The list is here: http://wikis.sun.com/display/WebStack/LighttpdDistros For me the key factors in deciding what features to enable and which to disable, seem to be: - User demand - Availability of dependent libraries (i.e. OpenSSL and pcre) - Any performance impact enabling a feature might have - The cumulative affect on performance of enabling features I'm sending out a message to the Lighttpd user aliases and fora to see if I can get any data on what Users would like to see and I'll also ping Jan - the Lighttpd lead to see if he has a view. I think that in terms of library dependencies, for now we'll have to go without support for SQLite. We should be good with the others if we decide to go with them, unless anyone can see any problems. In my view the five that all of the distros sampled enable should stay. These are bzip2, zlib, crypt, SSL and pcre. I could do some basic performance testing with all of the features enabled but how useful is this? It's useful if it shows up potential problems, but there are only a limited number of Use Cases you can test for. Most of us on the alias will have a view of what features would and would not be useful so please chip in with any comments or questions. Another question that I'm just going to throw out there. What compiler flags should we use for building Lighttpd? It's not a very CPU hungry application. All of the testing I've done with Lighttpd have been done with Lighttpd built with a generic set of compiler flags. I know there have been some extended discussions about this for other integrations in the past. BTW: Lighttpd makes use of sendfilev and dev/poll and we have an implementation of Solaris Event Ports that we are hoping to get putback into the Lighttpd commons. These all often appear in feature lists (as do Linux kqueue and epoll) but they are enabled dependent on the platform. Thanks Amanda