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.
Item | Size
| Apache | 304kB
| Lapis 0.12 without stack language | 26kB
|
|
Item | Size
| Perl executable | 909kB
| Lapis stack language 0.7 | adds 35kB
|
|
Change Log
New features in 0.11:
Lapis now supports:
- Support for serving media files.
- Support for cookies.
- Support for Python.
- An early version of Lapis language,
which is my tiny internal scripting language for Lapis.
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.
- FBUI: my in-kernel windowing system for Linux
- other projects
- Linux on the Thinkpad 560x
- Linux on the Thinkpad 380ED
- Linux on the Toshiba M35X
Linux Open source Webserver
Gadgets Thinkgeek
Slashdot Cubicle
Lapis
Thinkpad 560x