|
We were on a quest to find the smallest webserver. We concentrated in the software size. This is what we found.
MiniWeb
http://www.sics.se/~adam/miniweb/
This is only supposed to be a proof of concept but at 30 bytes why wouldn’t we include it in this list? MiniWeb is an implementation of a TCP stack together with a webserver. Miniweb stores its web pages as precomputed IP/TCP packets complete with headers. MiniWeb will run directly in FreeBSD. Linux users will have to compile the Universal tun/tap network interface into their kernel. MiniWeb was written by Adam Dunkels from the Swedish Institute of Computer Science.
Asmutils httpd
http://linuxassembly.org/
The Linux Assembly Utilities package includes an httpd deamon. The httpd executable weights at 535 bytes (half a Kb). This small program can server 214 pages a second and requires 16kb of RAM per request. Obvioulsy is not intended to be a full featured server, but it certainly could be used to serve documentation and static documents. It handles errors gracioulsy, in case of an error it closes the connection. This little program also has some initial support for CGI has logging capabilities. It is written in i386 assembly for Linux so it is not easyly portable. It has been in development since 1999 and is also included in the a-linux (1 disk) Linux distribution. Unlike some of the webservers housed in microchips that can only serve a few webpages (althought comparable in size to them) this program is only restricted by the size of the filesystem in the pages it can serve.
WebACE
http://d116.com/ace/
The webserver is housed in a Fairchild ACE1101MT microcontroller that is smaller than the head of a match. The chip is 6.3mm long by 3mm wide by 1.1mm thick The webACE server implements a special-purpose TCP stack and connects to the internet via a SLIP connection. The software is also very small weighting at a total of 1074 bytes. The webserver application itself is just 257 bytes. It could only serve a couple of pages (when it was online), since everything had to be in the chip. The server seems to not be running anymore, but you can find out at the website more informaiton about the ACE and also about webACE II and Spud the potate powered webserver. The webACE II is a more complex version of the webACE with an external chip to house the pages and a LED to alert of I/O activity. The webACE II can server up to 63 500 byte pages. Spud was a webserver running off the electricity from potatoes. Now it merely runs off single AAA battery.
The IPic
http://www-ccs.cs.umass.edu/~shri/iPic.html
Another microchip webserver claiming to be the world smallest in size housed in a PIC 12c50x microcontroller - the microcontroller cost 99 cents at the time. The IPIc webserver is a tiny implementation of a full TCP/IP stack and webserver. It connects to the Internet using a SLIP or PPP connection.
Java MiniWeb Server
http://www.jibble.org/miniwebserver/
The entire server is less than 4Kb and is written in Java. It is distributed in a single Jar file. It is distributed under the GPL but commercial licenses are available. Another interesting feature for programmers is that the file can be used as a HTTP Web Server library, thus allowing you to incorporate a webserver very easyly and quickly into your web applications.
Micro Httpd
http://www.acme.com/software/micro_httpd/
Micro httpd has only 150 lines of code and an 8Kb executable. It comes from Jef Poskanzer the author of thttpd which we cover later in the article. It is a simple webserver for Unix machines that runs from inetd, but featured enough for simple web serving tasks.
WebCard
http://www.citi.umich.edu/projects/smartcard/webcard/
The WebCard comes from the Center of Information Technology Integration at the University of Michigan and it is written by Jim Rees, author of the original Pilot httpd server. The software runs in a Schlumberger Cyberflex Access Java Card. It contains a stripped TCP/IP stack that only supports HTTP and a simple webserver. We could not find the total number of bytes the software took but the Cyberflex Access card has 16 KB of EEPROM and about 1.2 Kbytes of RAM. The server is written in Java.
Pilot httpd
http://www.citi.umich.edu/u/rees/pilot/
A webserver written by Jim Rees (Co-authored with Mark Eichin and Robin Kirkman) for the Pilot. It is a single .prc file 21Kb big. It is not being developed anymore. A webserver derived from this is the httpdPalm housed at SourceForge, but we could not get the size of the executable. You can find it http://sourceforge.net/projects/httpdpalm/. Jim is also the author of a server we cover above written in Java for a Java Smartcard — The Webcard.
TWSWS (The World Smallest Webserver)
http://twsws.sourceforge.net/index.html
Programed in C++ the author set out to create a small webserve that simply would serve the pages in a directory, and that it would have log the requests coming to the server. The binary file is 28K. The code is GPL is clean and available from sourceforge.
TinyWeb
http://www.ritlabs.com/tinyweb/index.html
A tiny webserver for Windows only having an executable of 53Kb. TinyWeb is written by Maxim Masiutin using Delphi. Source code is available. The server is free to use for commercial and non-commercial purposes.
Boa Webserver
http://www.boa.org/
Boa is a full featured non-forking webserver licensed under the GPL. The primary goals of Boa are speed and security and it may be noted that Boa is a choice for many as a replacement of Apache or other heavy weight servers. Boa sits at 85Kb.
Mathopd
http://www.mathopd.org/
Mathopd is another lightweight full featured webserver licensed under the GPL. It supports HTTP 1.1 and CGI 1.1. It is also a non-forking server and weights at 60kb. The Mathopd website is lean in information, but it does have a short FAQ, Download file page, and an introduction page. Mathopd has been around since 1996 and continues to be maintained.
thttpd
http://www.acme.com/software/thttpd/
thttpd weights 72 Kb and is fast. thttpd is a non-forking full featured webserver licensed under the GPL. One of the neat features of thttpd is that it has URL based throttling. The server manages the byte rates of predetermined URLs. So you can tell the server to limit images to only 1/3 of all traffic served. Or limit the web traffic to 90% of the available internet connection. Of course here at Faster, Smaller, Cheaper we also like the neat features of small footprint (72 Kb), faster throughput than other servers at extreme loads, and low resource consumption. As a lightweight webserver, thttpd is our favorite.
WebServer USB
http://www.webservusb.com/
This is a Plug and Play webserver (actually it is just a USB memory card). If you have a Win 98/ME/2000/XP machine, with a USB port, you can have a server running in no time. The software does not seem to be small and I suspect the USB drive is at least a 256Mb drive. It has a built in webserver with PHP support, email server, ftp server, MySQL, and Perl. It probably should not be here since we are listing small software programs, but the “neat” factor of this product made it irresistible not to list.
Servers we could not determine the size of the Software.
PicoWeb
http://www.picoweb.net/
mhttpd
http://www.muquit.com/muquit/software/mhttpd/mhttpd.html
|
|