[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Writing CGI apps with Lua
- From: Romulo Bahiense <romulo@...>
- Date: Thu, 23 Feb 2006 11:51:28 -0300
would you like to share your needs (and maybe solutions) with the rest of us?
I can, but I don't think it will be /that/ interesting.
I have a project that I started using a web server made with Delphi
(using ICS by François Piette) and the scripts handled with Lua. That
was cool, but I had some ideas that would be better implemented if they
were managed in the Lua side, due it's dynamic properties, fast proto
typing and portability. It was easier to implement the webapp in Xavante
than to build, test and debug an Apache module, for instance.
Then I got CGILua and Xavante. Really great stuff. In Xavante I made a
considerable amount of changes, some were misbehavior, some proprietary
features, others potentially buggy/dangerous (e.g.: Xavante considered
that all UAs would send the headers names in the correct Capital-Case,
which could not be true) and in some places, that I don't remember right
now, Xavante also didn't handled UA misbehavior, such as sending an
ill-formed HTTP header. I talked to Andre about some ideas last year
(gzip, path handling etc), but I took the hardest-to-share path, where
my solutions wouldn't be easily adapted to others' needs.
Of the things that could be shared with some work, are stuff like gzip
compression, If-Modified-Since, a very simple static-file memcache, a
customized path handler and some other minor stuff, but, again, some of
them are kind of 'short-circuit' to my needs. For instance, I don't have
virtual hosts nor I will share the web server with another application
so no need for sand boxing. I simply cut off those features, saving some
CPU cycles :)
From CGILua I just took the launchers (albeit I am not using them right
now, but I am thinking about lighty in the not-so-near future) and
standard libraries like url-parsing and a modified version of
filehandler.lua. I had to rewrite post.lua because it just worked with
venv (I may be wrong on this, but was fun to rewrite it anyway).
Also, I am developing a templating system, /inspired/ by CherryPy and
RubyOnRails ('inspired' means: absorbed some concepts and did a _very_
different implementation), but it is rather immature yet.
As you can see, most of my needs/changes are purely in the area of
embedded use. It was not that the components were dysfunctional or
anything, but I just wanted a different path.
Feel free to contact me.
Romulo.