views:

69

answers:

1

We are currently evaluating Web servers for an embedded device. We have laid down the evaluation criteria for things like HTTP version, Security, Compression etc.

On the embeddable side, we have identified the following criteria:

  1. Memory footprint
  2. Memory management (support for plugging in a custom memory manager)
  3. CPU usage
  4. Thread usage (support for thread pool)
  5. Portability

What I want inputs on is:

  1. Are there any other criteria that an embeddable software should meet?
  2. What exactly does it mean when someone says that a software is designed for embeddable use?

We currently have zeroed in on two Web servers:

  1. AppWeb
  2. Lighttpd (lighty)

Feature wise, both the above Web servers seem to be on par. However, it is claimed that AppWeb is designed for embedded use while Lighttpd is not. To choose between the above two Web servers, what criteria should I be looking at?

A: 

As opposed to enumerating your silly criteria list, such as HTTP version support (does it even matter if chunked encoding is not supported?), what do you need the web server to do? CGI scripts? Embedded scripts? "C" scripts? Also, embedded is a broad term - size depends on your platform limits: RAM, storage space. What class are you in? 4MB RAM? 64MB RAM?

For instance, busybox has a bare-minimum httpd which is, as all of busybox, tiny. But it supports the features most people care about. There are web frameworks built around C, which guarantees a tiny runtime footprint, but this extra work may not be necessary once you climb into 32MB+ of memory.

Yann Ramin
The "silly criteria list" was just an example. We have considered CGI, FastCGI, custom handlers etc. FYI, Yes, support for chunked encoding is important for us. The target platform is 1.5GHz, 32MB RAM running real time applications. The Web server can take upto 2MB memory.
Suresh Kumar