Lapis web server

Lapis is a tiny 26 kilobyte HTTP multitasking webserver that I wrote for my own purposes, but which is also a fitting response to the now fairly bloated Apache, which is 304kB without modules.

Its name derives from an obscure English verb "to scrinch" which generally means to willfully compress a thing which is not very large into a smaller size. For instance "to scrinch your eyes". This is apt, because Lapis is a project where the goal is constantly to make it smaller but yet as feature-rich as possible.

Lapis is capable of serving HTML and various media files, as well as running Perl, Python and PHP scripts externally and passing GET params and cookies to scripts. At this stage, version 0.10, Lapis does not support POST but it will later.

Lapis also has some anti-hacker features, described in the README file. The more I use the server myself and observe all the hair-brained things attackers and infected computers do, the more amusement I find in squashing their pitiful efforts.

Why Lapis?

I have a natural preference for stack-based languages, of which Lapis is one, and although I appreciate Perl and Python, I think it is time for a simpler, less resource-hogging scripting language and I am putting it inside Lapis as an option. Note that Lapis is my own invention however it bears a resemblence to Forth and PostScript.

Lapis is also justified by the desire to make things small. The following is a bloatedness comparison, and even though Lapis is not finished, it gives you an idea of how things will turn out.

ItemSize
Apache 304kB
Lapis 0.12 without stack language 26kB
ItemSize
Perl executable 909kB
Lapis stack language 0.7 adds 35kB

Change Log

New features in 0.11:
Lapis now supports:

Future Features

Most of my work presently is in expanding my stack-language. As an idea of what will be possible, here is a JPEG produced by a 25-line program:

Download

Download Lapis 0.11 here.

Contact

Zack T Smith, email

Links

Some of my other works.

Google




Linux Open source Webserver Gadgets Thinkgeek Slashdot Cubicle Lapis Thinkpad 560x